{"id":250,"date":"2026-04-10T09:31:04","date_gmt":"2026-04-10T07:31:04","guid":{"rendered":"https:\/\/raspitips.com\/?p=250"},"modified":"2026-04-10T09:32:18","modified_gmt":"2026-04-10T07:32:18","slug":"smart-shelf-inventory-counter-for-small-businesses","status":"publish","type":"post","link":"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/smart-shelf-inventory-counter-for-small-businesses\/","title":{"rendered":"Smart Shelf Inventory Counter for Small Businesses"},"content":{"rendered":"<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Manually counting stock is tedious, error-prone, and eats into time you could spend actually running your business. With a Raspberry Pi, a camera, and a bit of object detection AI, you can build a <strong>Smart Shelf Inventory Counter<\/strong> that watches your shelves, counts products automatically, and updates your stock levels in real time.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">This project is perfect for small shop owners, warehouse tinkerers, and makers who want to streamline operations without paying for expensive enterprise software.<\/p>\n<h2 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">What You&#8217;ll Need<\/h2>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Here&#8217;s your shopping list:<\/p>\n<ul class=\"[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3\">\n<li class=\"whitespace-normal break-words pl-2\"><strong>Raspberry Pi 4 (4GB or 8GB)<\/strong> \u2014 the 8GB model handles AI workloads more comfortably<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Raspberry Pi Camera Module 3<\/strong> or a good USB webcam (1080p minimum)<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>MicroSD card (32GB+)<\/strong> with Raspberry Pi OS (64-bit)<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Official Raspberry Pi power supply<\/strong><\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Camera mount or bracket<\/strong> to fix the camera above or in front of the shelf<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>LED light strip<\/strong> for consistent lighting<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Wi-Fi or Ethernet connection<\/strong><\/li>\n<li class=\"whitespace-normal break-words pl-2\"><em>(Optional)<\/em> <strong>Google Coral USB Accelerator<\/strong> \u2014 massively speeds up inference<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><em>(Optional)<\/em> <strong>7&#8243; touchscreen<\/strong> for a local dashboard<\/li>\n<\/ul>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">You&#8217;ll also want a free <strong>Google Sheets<\/strong> account (or any database) to store your inventory data.<\/p>\n<h2 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">Step 1: Prepare the Raspberry Pi<\/h2>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Flash Raspberry Pi OS (64-bit) using Raspberry Pi Imager, boot up, and update the system:<\/p>\n<div class=\"relative group\/copy bg-bg-000\/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100\" tabindex=\"0\" role=\"group\" aria-label=\"bash code\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 group-focus-within\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex z-10\">\n<div class=\"relative\">\n<div class=\"transition-all opacity-100 scale-100\"><\/div>\n<div class=\"absolute inset-0 flex items-center justify-center\">\n<div class=\"transition-all opacity-0 scale-50\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 font-small p-3.5 pb-0\">bash<\/div>\n<div class=\"overflow-x-auto\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5\"><code class=\"language-bash\"><span class=\"token token\">sudo<\/span> <span class=\"token token\">apt<\/span> update <span class=\"token token\">&amp;&amp;<\/span> <span class=\"token token\">sudo<\/span> <span class=\"token token\">apt<\/span> full-upgrade -y<\/code><\/pre>\n<\/div>\n<\/div>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Enable the camera via <code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">sudo raspi-config<\/code> \u2192 Interface Options \u2192 Camera, then reboot.<\/p>\n<h2 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">Step 2: Install the AI Libraries<\/h2>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">We&#8217;ll use <strong>TensorFlow Lite<\/strong> for lightweight object detection that runs smoothly on the Pi.<\/p>\n<div class=\"relative group\/copy bg-bg-000\/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100\" tabindex=\"0\" role=\"group\" aria-label=\"bash code\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 group-focus-within\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex z-10\">\n<div class=\"relative\">\n<div class=\"transition-all opacity-100 scale-100\"><\/div>\n<div class=\"absolute inset-0 flex items-center justify-center\">\n<div class=\"transition-all opacity-0 scale-50\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 font-small p-3.5 pb-0\">bash<\/div>\n<div class=\"overflow-x-auto\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5\"><code class=\"language-bash\"><span class=\"token token\">sudo<\/span> <span class=\"token token\">apt<\/span> <span class=\"token token\">install<\/span> python3-pip python3-opencv -y\r\npip3 <span class=\"token token\">install<\/span> tflite-runtime numpy pillow gspread oauth2client requests<\/code><\/pre>\n<\/div>\n<\/div>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Test the camera:<\/p>\n<div class=\"relative group\/copy bg-bg-000\/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100\" tabindex=\"0\" role=\"group\" aria-label=\"bash code\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 group-focus-within\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex z-10\">\n<div class=\"relative\">\n<div class=\"transition-all opacity-100 scale-100\"><\/div>\n<div class=\"absolute inset-0 flex items-center justify-center\">\n<div class=\"transition-all opacity-0 scale-50\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 font-small p-3.5 pb-0\">bash<\/div>\n<div class=\"overflow-x-auto\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5\"><code class=\"language-bash\">libcamera-still -o shelf.jpg<\/code><\/pre>\n<\/div>\n<\/div>\n<h2 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">Step 3: Choose or Train Your Object Detection Model<\/h2>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">You have two paths:<\/p>\n<ol class=\"[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-decimal flex flex-col gap-1 pl-8 mb-3\">\n<li class=\"whitespace-normal break-words pl-2\"><strong>Pre-trained model<\/strong> \u2014 Start with <strong>MobileNet SSD<\/strong> or <strong>EfficientDet-Lite<\/strong>, which can detect common items (bottles, boxes, cans) out of the box. Great for prototyping.<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Custom model<\/strong> \u2014 For your actual products, train a model using <strong>Google Teachable Machine<\/strong>, <strong>Roboflow<\/strong>, or <strong>TensorFlow Object Detection API<\/strong>. Snap 30\u201350 photos per product from different angles, label them, train, and export as <code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">.tflite<\/code>.<\/li>\n<\/ol>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Place the model file and labels in a project folder like <code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">~\/shelf-counter\/<\/code>.<\/p>\n<h2 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">Step 4: Position Your Camera<\/h2>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Mount the camera directly above or facing the shelf so every product is clearly visible. Consistency is key \u2014 lock it in place so the view never changes. Add an LED strip to eliminate shadows and flickering, which throw off detection accuracy.<\/p>\n<h2 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">Step 5: Write the Detection Script<\/h2>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Create <code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">shelf_counter.py<\/code> that captures an image, runs detection, and counts each product class:<\/p>\n<div class=\"relative group\/copy bg-bg-000\/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100\" tabindex=\"0\" role=\"group\" aria-label=\"python code\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 group-focus-within\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex z-10\">\n<div class=\"relative\">\n<div class=\"transition-all opacity-100 scale-100\"><\/div>\n<div class=\"absolute inset-0 flex items-center justify-center\">\n<div class=\"transition-all opacity-0 scale-50\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 font-small p-3.5 pb-0\">python<\/div>\n<div class=\"overflow-x-auto\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5\"><code class=\"language-python\"><span class=\"token token\">import<\/span> tflite_runtime<span class=\"token token\">.<\/span>interpreter <span class=\"token token\">as<\/span> tflite\r\n<span class=\"token token\">import<\/span> numpy <span class=\"token token\">as<\/span> np\r\n<span class=\"token token\">from<\/span> PIL <span class=\"token token\">import<\/span> Image\r\n<span class=\"token token\">import<\/span> subprocess\r\n<span class=\"token token\">from<\/span> collections <span class=\"token token\">import<\/span> Counter\r\n\r\ninterpreter <span class=\"token token\">=<\/span> tflite<span class=\"token token\">.<\/span>Interpreter<span class=\"token token\">(<\/span>model_path<span class=\"token token\">=<\/span><span class=\"token token\">\"shelf_model.tflite\"<\/span><span class=\"token token\">)<\/span>\r\ninterpreter<span class=\"token token\">.<\/span>allocate_tensors<span class=\"token token\">(<\/span><span class=\"token token\">)<\/span>\r\nlabels <span class=\"token token\">=<\/span> <span class=\"token token\">open<\/span><span class=\"token token\">(<\/span><span class=\"token token\">\"labels.txt\"<\/span><span class=\"token token\">)<\/span><span class=\"token token\">.<\/span>read<span class=\"token token\">(<\/span><span class=\"token token\">)<\/span><span class=\"token token\">.<\/span>splitlines<span class=\"token token\">(<\/span><span class=\"token token\">)<\/span>\r\n\r\n<span class=\"token token\">def<\/span> <span class=\"token token\">capture<\/span><span class=\"token token\">(<\/span><span class=\"token token\">)<\/span><span class=\"token token\">:<\/span>\r\n    subprocess<span class=\"token token\">.<\/span>run<span class=\"token token\">(<\/span><span class=\"token token\">[<\/span><span class=\"token token\">\"libcamera-still\"<\/span><span class=\"token token\">,<\/span> <span class=\"token token\">\"-o\"<\/span><span class=\"token token\">,<\/span> <span class=\"token token\">\"shelf.jpg\"<\/span><span class=\"token token\">,<\/span> <span class=\"token token\">\"-n\"<\/span><span class=\"token token\">]<\/span><span class=\"token token\">)<\/span>\r\n    <span class=\"token token\">return<\/span> Image<span class=\"token token\">.<\/span><span class=\"token token\">open<\/span><span class=\"token token\">(<\/span><span class=\"token token\">\"shelf.jpg\"<\/span><span class=\"token token\">)<\/span><span class=\"token token\">.<\/span>resize<span class=\"token token\">(<\/span><span class=\"token token\">(<\/span><span class=\"token token\">320<\/span><span class=\"token token\">,<\/span> <span class=\"token token\">320<\/span><span class=\"token token\">)<\/span><span class=\"token token\">)<\/span>\r\n\r\n<span class=\"token token\">def<\/span> <span class=\"token token\">detect<\/span><span class=\"token token\">(<\/span>img<span class=\"token token\">)<\/span><span class=\"token token\">:<\/span>\r\n    input_data <span class=\"token token\">=<\/span> np<span class=\"token token\">.<\/span>expand_dims<span class=\"token token\">(<\/span>np<span class=\"token token\">.<\/span>array<span class=\"token token\">(<\/span>img<span class=\"token token\">,<\/span> dtype<span class=\"token token\">=<\/span>np<span class=\"token token\">.<\/span>uint8<span class=\"token token\">)<\/span><span class=\"token token\">,<\/span> axis<span class=\"token token\">=<\/span><span class=\"token token\">0<\/span><span class=\"token token\">)<\/span>\r\n    interpreter<span class=\"token token\">.<\/span>set_tensor<span class=\"token token\">(<\/span>interpreter<span class=\"token token\">.<\/span>get_input_details<span class=\"token token\">(<\/span><span class=\"token token\">)<\/span><span class=\"token token\">[<\/span><span class=\"token token\">0<\/span><span class=\"token token\">]<\/span><span class=\"token token\">[<\/span><span class=\"token token\">'index'<\/span><span class=\"token token\">]<\/span><span class=\"token token\">,<\/span> input_data<span class=\"token token\">)<\/span>\r\n    interpreter<span class=\"token token\">.<\/span>invoke<span class=\"token token\">(<\/span><span class=\"token token\">)<\/span>\r\n    classes <span class=\"token token\">=<\/span> interpreter<span class=\"token token\">.<\/span>get_tensor<span class=\"token token\">(<\/span>interpreter<span class=\"token token\">.<\/span>get_output_details<span class=\"token token\">(<\/span><span class=\"token token\">)<\/span><span class=\"token token\">[<\/span><span class=\"token token\">1<\/span><span class=\"token token\">]<\/span><span class=\"token token\">[<\/span><span class=\"token token\">'index'<\/span><span class=\"token token\">]<\/span><span class=\"token token\">)<\/span><span class=\"token token\">[<\/span><span class=\"token token\">0<\/span><span class=\"token token\">]<\/span>\r\n    scores <span class=\"token token\">=<\/span> interpreter<span class=\"token token\">.<\/span>get_tensor<span class=\"token token\">(<\/span>interpreter<span class=\"token token\">.<\/span>get_output_details<span class=\"token token\">(<\/span><span class=\"token token\">)<\/span><span class=\"token token\">[<\/span><span class=\"token token\">2<\/span><span class=\"token token\">]<\/span><span class=\"token token\">[<\/span><span class=\"token token\">'index'<\/span><span class=\"token token\">]<\/span><span class=\"token token\">)<\/span><span class=\"token token\">[<\/span><span class=\"token token\">0<\/span><span class=\"token token\">]<\/span>\r\n    detected <span class=\"token token\">=<\/span> <span class=\"token token\">[<\/span>labels<span class=\"token token\">[<\/span><span class=\"token token\">int<\/span><span class=\"token token\">(<\/span>c<span class=\"token token\">)<\/span><span class=\"token token\">]<\/span> <span class=\"token token\">for<\/span> c<span class=\"token token\">,<\/span> s <span class=\"token token\">in<\/span> <span class=\"token token\">zip<\/span><span class=\"token token\">(<\/span>classes<span class=\"token token\">,<\/span> scores<span class=\"token token\">)<\/span> <span class=\"token token\">if<\/span> s <span class=\"token token\">&gt;<\/span> <span class=\"token token\">0.5<\/span><span class=\"token token\">]<\/span>\r\n    <span class=\"token token\">return<\/span> Counter<span class=\"token token\">(<\/span>detected<span class=\"token token\">)<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h2 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">Step 6: Sync Counts to Google Sheets<\/h2>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Create a Google Cloud service account, enable the Sheets API, and share your spreadsheet with the service email. Then push counts live:<\/p>\n<div class=\"relative group\/copy bg-bg-000\/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100\" tabindex=\"0\" role=\"group\" aria-label=\"python code\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 group-focus-within\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex z-10\">\n<div class=\"relative\">\n<div class=\"transition-all opacity-100 scale-100\"><\/div>\n<div class=\"absolute inset-0 flex items-center justify-center\">\n<div class=\"transition-all opacity-0 scale-50\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 font-small p-3.5 pb-0\">python<\/div>\n<div class=\"overflow-x-auto\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5\"><code class=\"language-python\"><span class=\"token token\">import<\/span> gspread\r\ngc <span class=\"token token\">=<\/span> gspread<span class=\"token token\">.<\/span>service_account<span class=\"token token\">(<\/span>filename<span class=\"token token\">=<\/span><span class=\"token token\">\"creds.json\"<\/span><span class=\"token token\">)<\/span>\r\nsheet <span class=\"token token\">=<\/span> gc<span class=\"token token\">.<\/span><span class=\"token token\">open<\/span><span class=\"token token\">(<\/span><span class=\"token token\">\"Inventory\"<\/span><span class=\"token token\">)<\/span><span class=\"token token\">.<\/span>sheet1\r\n\r\n<span class=\"token token\">def<\/span> <span class=\"token token\">update_sheet<\/span><span class=\"token token\">(<\/span>counts<span class=\"token token\">)<\/span><span class=\"token token\">:<\/span>\r\n    <span class=\"token token\">for<\/span> i<span class=\"token token\">,<\/span> <span class=\"token token\">(<\/span>product<span class=\"token token\">,<\/span> qty<span class=\"token token\">)<\/span> <span class=\"token token\">in<\/span> <span class=\"token token\">enumerate<\/span><span class=\"token token\">(<\/span>counts<span class=\"token token\">.<\/span>items<span class=\"token token\">(<\/span><span class=\"token token\">)<\/span><span class=\"token token\">,<\/span> start<span class=\"token token\">=<\/span><span class=\"token token\">2<\/span><span class=\"token token\">)<\/span><span class=\"token token\">:<\/span>\r\n        sheet<span class=\"token token\">.<\/span>update<span class=\"token token\">(<\/span><span class=\"token token string-interpolation\">f\"A<\/span><span class=\"token token string-interpolation interpolation\">{<\/span><span class=\"token token string-interpolation interpolation\">i<\/span><span class=\"token token string-interpolation interpolation\">}<\/span><span class=\"token token string-interpolation\">\"<\/span><span class=\"token token\">,<\/span> product<span class=\"token token\">)<\/span>\r\n        sheet<span class=\"token token\">.<\/span>update<span class=\"token token\">(<\/span><span class=\"token token string-interpolation\">f\"B<\/span><span class=\"token token string-interpolation interpolation\">{<\/span><span class=\"token token string-interpolation interpolation\">i<\/span><span class=\"token token string-interpolation interpolation\">}<\/span><span class=\"token token string-interpolation\">\"<\/span><span class=\"token token\">,<\/span> qty<span class=\"token token\">)<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Now your spreadsheet updates automatically every time the script runs \u2014 no manual counting, ever.<\/p>\n<h2 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">Step 7: Automate and Alert<\/h2>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Schedule the script to run every 10 minutes with <code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">cron<\/code>:<\/p>\n<div class=\"relative group\/copy bg-bg-000\/50 border-0.5 border-border-400 rounded-lg focus:outline-none focus-visible:ring-2 focus-visible:ring-accent-100\" tabindex=\"0\" role=\"group\" aria-label=\"bash code\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 group-focus-within\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex z-10\">\n<div class=\"relative\">\n<div class=\"transition-all opacity-100 scale-100\"><\/div>\n<div class=\"absolute inset-0 flex items-center justify-center\">\n<div class=\"transition-all opacity-0 scale-50\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 font-small p-3.5 pb-0\">bash<\/div>\n<div class=\"overflow-x-auto\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed p-3.5\"><code class=\"language-bash\"><span class=\"token token\">crontab<\/span> -e\r\n<span class=\"token token\"># Add:<\/span>\r\n*\/10 * * * * \/usr\/bin\/python3 \/home\/pi\/shelf-counter\/shelf_counter.py<\/code><\/pre>\n<\/div>\n<\/div>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Add low-stock alerts with a simple Telegram bot \u2014 whenever a product count drops below a threshold, send yourself a message so you know it&#8217;s time to restock.<\/p>\n<h2 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">Tips for Reliable Results<\/h2>\n<ul class=\"[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3\">\n<li class=\"whitespace-normal break-words pl-2\"><strong>Lock the camera angle<\/strong> \u2014 any shift ruins consistency<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Use even, diffused lighting<\/strong> to avoid glare on packaging<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Retrain periodically<\/strong> as you add new products<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Add a Coral USB Accelerator<\/strong> if detection feels sluggish<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Keep shelves tidy<\/strong> \u2014 overlapping items confuse the model<\/li>\n<\/ul>\n<h2 class=\"text-text-100 mt-3 -mb-1 text-[1.125rem] font-bold\">Wrapping Up<\/h2>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">You&#8217;ve just built a real-time, AI-powered inventory system for a fraction of what commercial solutions cost. Expand it with multiple cameras for larger shops, build a web dashboard, or integrate it with your POS system for end-to-end automation.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Small business, big brain. \ud83e\udde0\ud83d\udce6<\/p>\n<hr class=\"border-border-200 border-t-0.5 my-3 mx-1.5\" \/>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><em>Enjoyed this build? Follow <strong>@raspitips<\/strong> on Instagram for more Raspberry Pi projects, tips, and tutorials.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Manually counting stock is tedious, error-prone, and eats into time  [&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":251,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_total_topic_count_hidden":0,"_bbp_total_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"content-type":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[36],"tags":[],"class_list":["post-250","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-projects"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Smart Shelf Inventory\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"mitsoshsr\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/smart-shelf-inventory-counter-for-small-businesses\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_GB\" \/>\n\t\t<meta property=\"og:site_name\" content=\"RaspiTips - Turn Your Ideas Into Reality.\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Smart Shelf Inventory\" \/>\n\t\t<meta property=\"og:description\" content=\"Smart Shelf Inventory\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/smart-shelf-inventory-counter-for-small-businesses\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-04-10T07:31:04+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-04-10T07:32:18+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Smart Shelf Inventory\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Smart Shelf Inventory\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/2026\\\/04\\\/10\\\/smart-shelf-inventory-counter-for-small-businesses\\\/#blogposting\",\"name\":\"Smart Shelf Inventory\",\"headline\":\"Smart Shelf Inventory Counter for Small Businesses\",\"author\":{\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/author\\\/mitsoshsr\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/raspitips.com\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/raspitips.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Gemini_Generated_Image_987uwj987uwj987u.png?fit=2048%2C2048&ssl=1\",\"width\":2048,\"height\":2048},\"datePublished\":\"2026-04-10T09:31:04+02:00\",\"dateModified\":\"2026-04-10T09:32:18+02:00\",\"inLanguage\":\"en-GB\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/2026\\\/04\\\/10\\\/smart-shelf-inventory-counter-for-small-businesses\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/2026\\\/04\\\/10\\\/smart-shelf-inventory-counter-for-small-businesses\\\/#webpage\"},\"articleSection\":\"Projects\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/2026\\\/04\\\/10\\\/smart-shelf-inventory-counter-for-small-businesses\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/raspitips.com#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/raspitips.com\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/category\\\/projects\\\/#listItem\",\"name\":\"Projects\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/category\\\/projects\\\/#listItem\",\"position\":2,\"name\":\"Projects\",\"item\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/category\\\/projects\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/2026\\\/04\\\/10\\\/smart-shelf-inventory-counter-for-small-businesses\\\/#listItem\",\"name\":\"Smart Shelf Inventory Counter for Small Businesses\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/raspitips.com#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/2026\\\/04\\\/10\\\/smart-shelf-inventory-counter-for-small-businesses\\\/#listItem\",\"position\":3,\"name\":\"Smart Shelf Inventory Counter for Small Businesses\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/category\\\/projects\\\/#listItem\",\"name\":\"Projects\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/raspitips.com\\\/#organization\",\"name\":\"Raspi Tipes\",\"description\":\"Turn Your Ideas Into Reality.\",\"url\":\"https:\\\/\\\/raspitips.com\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/author\\\/mitsoshsr\\\/#author\",\"url\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/author\\\/mitsoshsr\\\/\",\"name\":\"mitsoshsr\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/2026\\\/04\\\/10\\\/smart-shelf-inventory-counter-for-small-businesses\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/752973f69ab63ff1abc0b2fed0194223d942a401ab68b7c7f6ebc1ec7c1ded0b?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"mitsoshsr\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/2026\\\/04\\\/10\\\/smart-shelf-inventory-counter-for-small-businesses\\\/#webpage\",\"url\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/2026\\\/04\\\/10\\\/smart-shelf-inventory-counter-for-small-businesses\\\/\",\"name\":\"Smart Shelf Inventory\",\"description\":\"Smart Shelf Inventory\",\"inLanguage\":\"en-GB\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/raspitips.com\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/2026\\\/04\\\/10\\\/smart-shelf-inventory-counter-for-small-businesses\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/author\\\/mitsoshsr\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/author\\\/mitsoshsr\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/raspitips.com\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Gemini_Generated_Image_987uwj987uwj987u.png?fit=2048%2C2048&ssl=1\",\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/2026\\\/04\\\/10\\\/smart-shelf-inventory-counter-for-small-businesses\\\/#mainImage\",\"width\":2048,\"height\":2048},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/raspitips.com\\\/index.php\\\/2026\\\/04\\\/10\\\/smart-shelf-inventory-counter-for-small-businesses\\\/#mainImage\"},\"datePublished\":\"2026-04-10T09:31:04+02:00\",\"dateModified\":\"2026-04-10T09:32:18+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/raspitips.com\\\/#website\",\"url\":\"https:\\\/\\\/raspitips.com\\\/\",\"name\":\"Raspi Tips\",\"description\":\"Turn Your Ideas Into Reality.\",\"inLanguage\":\"en-GB\",\"publisher\":{\"@id\":\"https:\\\/\\\/raspitips.com\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Smart Shelf Inventory","description":"Smart Shelf Inventory","canonical_url":"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/smart-shelf-inventory-counter-for-small-businesses\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/smart-shelf-inventory-counter-for-small-businesses\/#blogposting","name":"Smart Shelf Inventory","headline":"Smart Shelf Inventory Counter for Small Businesses","author":{"@id":"https:\/\/raspitips.com\/index.php\/author\/mitsoshsr\/#author"},"publisher":{"@id":"https:\/\/raspitips.com\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/i0.wp.com\/raspitips.com\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_987uwj987uwj987u.png?fit=2048%2C2048&ssl=1","width":2048,"height":2048},"datePublished":"2026-04-10T09:31:04+02:00","dateModified":"2026-04-10T09:32:18+02:00","inLanguage":"en-GB","mainEntityOfPage":{"@id":"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/smart-shelf-inventory-counter-for-small-businesses\/#webpage"},"isPartOf":{"@id":"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/smart-shelf-inventory-counter-for-small-businesses\/#webpage"},"articleSection":"Projects"},{"@type":"BreadcrumbList","@id":"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/smart-shelf-inventory-counter-for-small-businesses\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/raspitips.com#listItem","position":1,"name":"Home","item":"https:\/\/raspitips.com","nextItem":{"@type":"ListItem","@id":"https:\/\/raspitips.com\/index.php\/category\/projects\/#listItem","name":"Projects"}},{"@type":"ListItem","@id":"https:\/\/raspitips.com\/index.php\/category\/projects\/#listItem","position":2,"name":"Projects","item":"https:\/\/raspitips.com\/index.php\/category\/projects\/","nextItem":{"@type":"ListItem","@id":"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/smart-shelf-inventory-counter-for-small-businesses\/#listItem","name":"Smart Shelf Inventory Counter for Small Businesses"},"previousItem":{"@type":"ListItem","@id":"https:\/\/raspitips.com#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/smart-shelf-inventory-counter-for-small-businesses\/#listItem","position":3,"name":"Smart Shelf Inventory Counter for Small Businesses","previousItem":{"@type":"ListItem","@id":"https:\/\/raspitips.com\/index.php\/category\/projects\/#listItem","name":"Projects"}}]},{"@type":"Organization","@id":"https:\/\/raspitips.com\/#organization","name":"Raspi Tipes","description":"Turn Your Ideas Into Reality.","url":"https:\/\/raspitips.com\/"},{"@type":"Person","@id":"https:\/\/raspitips.com\/index.php\/author\/mitsoshsr\/#author","url":"https:\/\/raspitips.com\/index.php\/author\/mitsoshsr\/","name":"mitsoshsr","image":{"@type":"ImageObject","@id":"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/smart-shelf-inventory-counter-for-small-businesses\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/752973f69ab63ff1abc0b2fed0194223d942a401ab68b7c7f6ebc1ec7c1ded0b?s=96&d=mm&r=g","width":96,"height":96,"caption":"mitsoshsr"}},{"@type":"WebPage","@id":"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/smart-shelf-inventory-counter-for-small-businesses\/#webpage","url":"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/smart-shelf-inventory-counter-for-small-businesses\/","name":"Smart Shelf Inventory","description":"Smart Shelf Inventory","inLanguage":"en-GB","isPartOf":{"@id":"https:\/\/raspitips.com\/#website"},"breadcrumb":{"@id":"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/smart-shelf-inventory-counter-for-small-businesses\/#breadcrumblist"},"author":{"@id":"https:\/\/raspitips.com\/index.php\/author\/mitsoshsr\/#author"},"creator":{"@id":"https:\/\/raspitips.com\/index.php\/author\/mitsoshsr\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/i0.wp.com\/raspitips.com\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_987uwj987uwj987u.png?fit=2048%2C2048&ssl=1","@id":"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/smart-shelf-inventory-counter-for-small-businesses\/#mainImage","width":2048,"height":2048},"primaryImageOfPage":{"@id":"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/smart-shelf-inventory-counter-for-small-businesses\/#mainImage"},"datePublished":"2026-04-10T09:31:04+02:00","dateModified":"2026-04-10T09:32:18+02:00"},{"@type":"WebSite","@id":"https:\/\/raspitips.com\/#website","url":"https:\/\/raspitips.com\/","name":"Raspi Tips","description":"Turn Your Ideas Into Reality.","inLanguage":"en-GB","publisher":{"@id":"https:\/\/raspitips.com\/#organization"}}]},"og:locale":"en_GB","og:site_name":"RaspiTips - Turn Your Ideas Into Reality.","og:type":"article","og:title":"Smart Shelf Inventory","og:description":"Smart Shelf Inventory","og:url":"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/smart-shelf-inventory-counter-for-small-businesses\/","article:published_time":"2026-04-10T07:31:04+00:00","article:modified_time":"2026-04-10T07:32:18+00:00","twitter:card":"summary_large_image","twitter:title":"Smart Shelf Inventory","twitter:description":"Smart Shelf Inventory"},"aioseo_meta_data":{"post_id":"250","title":"Smart Shelf Inventory","description":"Smart Shelf Inventory","keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"BlogPosting","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":{"faqs":[],"keyPoints":[],"titles":[],"descriptions":[],"socialPosts":{"email":[],"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"created":"2026-04-10 07:31:04","updated":"2026-04-10 08:45:50","seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/raspitips.com\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/raspitips.com\/index.php\/category\/projects\/\" title=\"Projects\">Projects<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tSmart Shelf Inventory Counter for Small Businesses\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/raspitips.com"},{"label":"Projects","link":"https:\/\/raspitips.com\/index.php\/category\/projects\/"},{"label":"Smart Shelf Inventory Counter for Small Businesses","link":"https:\/\/raspitips.com\/index.php\/2026\/04\/10\/smart-shelf-inventory-counter-for-small-businesses\/"}],"jetpack-related-posts":[],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/raspitips.com\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_987uwj987uwj987u.png?fit=2048%2C2048&ssl=1","_links":{"self":[{"href":"https:\/\/raspitips.com\/index.php\/wp-json\/wp\/v2\/posts\/250","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/raspitips.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/raspitips.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/raspitips.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/raspitips.com\/index.php\/wp-json\/wp\/v2\/comments?post=250"}],"version-history":[{"count":1,"href":"https:\/\/raspitips.com\/index.php\/wp-json\/wp\/v2\/posts\/250\/revisions"}],"predecessor-version":[{"id":252,"href":"https:\/\/raspitips.com\/index.php\/wp-json\/wp\/v2\/posts\/250\/revisions\/252"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/raspitips.com\/index.php\/wp-json\/wp\/v2\/media\/251"}],"wp:attachment":[{"href":"https:\/\/raspitips.com\/index.php\/wp-json\/wp\/v2\/media?parent=250"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/raspitips.com\/index.php\/wp-json\/wp\/v2\/categories?post=250"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/raspitips.com\/index.php\/wp-json\/wp\/v2\/tags?post=250"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}