ScavioScavio
Pricing
Tools
Sign InsGet Startedg
4 live endpoints

Walgreens API

Walgreens product data as structured JSON: search the retail catalog with regular and sale prices, promotions, coupons and ratings, read full product detail with dated offers and ingredients, find stores near a ZIP, and get one product's live unit count at up to 20 stores in one call.

Get your API keyRead the docs

50 free credits on signup. No card, no Walgreens account.

POST /api/v1/walgreens/search
sample
query:
try
{  "data": {    "query": "shampoo",    "page": 1,    "sort": "relevance",    "store_id": "15350",    "total_results": 533,    "total_pages": 8,    "count": 70,    "products": [      {        "position": 1,        "product_id": "300452904",        "upc": "19560214708",        "name": "Walgreens Shiny & Smooth Shampoo",        "brand": "Walgreens",        "size": "33.8 fl oz",        "price": 4.99,        "sale_price": 3.74,        "on_sale": true,        "promotion": null,        "coupon": null,        "loyalty_message": "Earn $10 rewards on $30+ spent on select Walgreens brands*",        "rating": 4,        "review_count": 90,        "availability": {          "ship": true,          "pickup": false,          "delivery": false,          "text": "In stock but not available for pickup"        }      },      {        "position": 2,        "product_id": "300421556",        "upc": "8087819556",        "name": "Pantene Daily Moisture Renewal 72 Hour Lush Moisture Shampoo",        "brand": "Pantene",        "size": "12 fl oz",        "price": 6.49,        "sale_price": null,        "on_sale": false,        "unit_price": 0.54,        "unit_price_size": "oz",        "promotion": "Buy 1, Get 1 50% OFF",        "coupon": "$2 off 2 Coupon",        "rating": 4.5,        "review_count": 511      }    ]  },  "response_time": 2829}
captured example · 2 credits2 / 2 free

Live call against the real endpoint, with availability text for store 15350 (Chicago, IL). 2 free runs, then it's your own key.

What is the Scavio Walgreens API?

The Scavio Walgreens API is a REST API that returns walgreens.com retail data as structured JSON. Its 4 POST endpoints cover search and product detail with national online prices and promotions, a store locator, and live stock at up to 20 stores per call. Search, product and stores cost 2 credits; stock costs 4.

4
endpoints, all live in production
2
credits for search, product and stores; 4 for stock
20
stores' unit counts for one product in one call

The Walgreens data buyers actually need

What it costs this week, which promotion applies, and which nearby store has it on the shelf.

Units on the shelf at 20 stores

POST /api/v1/walgreens/stock

Pass a product id and up to 20 store numbers and one call returns each store's status, unit count and in_stock. Our Chicago capture found Walgreens Shiny & Smooth Shampoo in stock at all 5 stores checked, with 1 to 5 units each.

Search with every promotion

POST /api/v1/walgreens/search

Up to 70 products a page with regular and sale price, unit price, Buy 1 Get 1 style promotions, clipped-coupon text, rewards and rebate messages. In our shampoo capture, 9 of 70 rows were on sale and 25 carried a coupon.

Product detail with offers

POST /api/v1/walgreens/product

SKU, UPC and GTIN, savings amount and percent, rewards offers with start and end dates, description, ingredients, warnings, category path, images and the FSA flag.

Store locator

POST /api/v1/walgreens/stores

Walgreens and Duane Reade stores near a ZIP or coordinates, nearest first, with the store number every stock call takes. ZIP 60614 returned 441 stores within 25 miles.

All 4 Walgreens API endpoints

Every route is a POST, returns JSON, and takes the same API key. Credits are charged per successful call.

EndpointReturnsCredits
Search/api/v1/walgreens/searchRetail product search, up to 70 per page and 11 sort orders: regular and sale price, unit price, promotion, coupon, rewards and rebate messages, rating, review count, UPC and ship/pickup/delivery availability2
Product detail/api/v1/walgreens/productOne product by id or URL: SKU, UPC, GTIN, price, sale price and savings, dated rewards and rebate offers, description, ingredients, warnings, category path, images and FSA flag2
Store locator/api/v1/walgreens/storesWalgreens and Duane Reade stores near a ZIP or coordinates, nearest first, up to 25 a page: store number, address, phone, distance, opening and closing time2
Store stock/api/v1/walgreens/stockOne product's live stock at up to 20 stores in one call: status, unit count and in_stock per store4

50 free credits on signup covers 25 Walgreens searches. Prices are national online prices; stock is per store. See plans

Search the catalog, then find stock nearby

Search returns prices, promotions and the product_id; stores turns a ZIP into store numbers; stock returns the unit count at each. The response on the right is a real capture.

from scavio import ScavioClient

client = ScavioClient(api_key="sk_live_your_key")

# Search the catalog, availability text for store 15350 - 2 credits
res = client.walgreens.search(query="shampoo", store_id="15350")
p = res["data"]["products"][0]
print(p["name"], p["price"], "sale", p["sale_price"], p["promotion"])

# Stores near a ZIP, nearest first - 2 credits
stores = client.walgreens.stores(zip="60614", limit=5)["data"]["stores"]
ids = [s["store_number"] for s in stores]

# That product's units at each of those stores - 4 credits
stock = client.walgreens.stock(product_id=p["product_id"], store_ids=ids)["data"]
print([(s["store_number"], s["quantity"]) for s in stock["stores"] if s["in_stock"]])
200 response.jsoncaptured
{
  "data": {
    "query": "shampoo",
    "page": 1,
    "sort": "relevance",
    "store_id": "15350",
    "total_results": 533,
    "total_pages": 8,
    "count": 70,
    "products": [
      {
        "position": 1,
        "product_id": "300452904",
        "upc": "19560214708",
        "name": "Walgreens Shiny & Smooth Shampoo",
        "brand": "Walgreens",
        "size": "33.8 fl oz",
        "price": 4.99,
        "sale_price": 3.74,
        "on_sale": true,
        "promotion": null,
        "coupon": null,
        "loyalty_message": "Earn $10 rewards on $30+ spent on select Walgreens brands*",
        "rating": 4,
        "review_count": 90,
        "availability": {
          "ship": true,
          "pickup": false,
          "delivery": false,
          "text": "In stock but not available for pickup"
        }
      },
      {
        "position": 2,
        "product_id": "300421556",
        "upc": "8087819556",
        "name": "Pantene Daily Moisture Renewal 72 Hour Lush Moisture Shampoo",
        "brand": "Pantene",
        "size": "12 fl oz",
        "price": 6.49,
        "sale_price": null,
        "on_sale": false,
        "unit_price": 0.54,
        "unit_price_size": "oz",
        "promotion": "Buy 1, Get 1 50% OFF",
        "coupon": "$2 off 2 Coupon",
        "rating": 4.5,
        "review_count": 511
      }
    ]
  },
  "response_time": 2829
}

Why not the official Walgreens API?

Walgreens' developer program centers on partner integrations such as photo printing and prescriptions.

Walgreens Developer Program

  • Built around partner use cases such as photo prints, prescriptions and store lookup
  • Access starts with registering for the Walgreens developer program
  • Catalog prices, promotions and coupons live on walgreens.com pages, with no export

Scavio Walgreens API

  • One API key, issued at signup, with no Walgreens account or partner agreement
  • Search with regular, sale and unit price, promotions, coupons and ratings
  • One product's live unit count at up to 20 stores in a single call
  • Product detail with dated offers, ingredients, GTIN and the FSA flag
  • Same key and JSON envelope as every other Scavio platform

Scavio returns publicly available retail data only, and never signs in as a Walgreens customer.

What developers build with it

Local stock finder

Given a product and a ZIP, list the nearby Walgreens stores that have it on the shelf and how many units each holds: one stores call and one stock call.

stores + stock

Health and beauty price tracking

Track regular price, sale price, unit price and promotions for a list of health, beauty and household products over time.

search + product

Deal and coupon apps

Show what an item really costs this week at Walgreens: sale price, Buy 1 Get 1 promotions, coupon text, rewards offers with their end dates and rebates.

search + product

CPG brand monitoring

Check a brand's shelf presence store by store, and watch its price, promotions and ratings in the Walgreens catalog.

stock + search

Drugstore competitive intelligence

Compare Walgreens prices with Walmart, Target and Kroger for the same UPC, on one API key.

search + Walmart + Target

How to get Walgreens data as JSON

  1. 1

    Get an API key

    Sign up for a Scavio account and copy your key from the dashboard. You get 50 credits free on signup, with no card required and no Walgreens account.

  2. 2

    Search the catalog

    Send {"query": "shampoo"} to https://api.scavio.dev/api/v1/walgreens/search with an Authorization: Bearer header. Each result carries its product_id, price, sale price and promotions.

  3. 3

    Find stores and check their stock

    Call /api/v1/walgreens/stores with a ZIP for store numbers, then pass a product_id and up to 20 of those numbers to /api/v1/walgreens/stock for each store's unit count.

One key, 55 platformsMCP server for agentsPython & JS SDKsn8n community node

Walgreens API FAQ

Does Walgreens have a public product data API?

+

Walgreens runs a developer program centered on partner integrations such as photo printing and prescriptions, with access through registration. For catalog prices, promotions and per-store stock as JSON, the Scavio Walgreens API offers 4 POST endpoints: search, product detail, a store locator and store stock.

What is the Scavio Walgreens API?

+

It is a REST API that returns public walgreens.com retail data as structured JSON. It covers product search with prices and promotions, product detail by id or URL, a Walgreens and Duane Reade store locator, and one product's live stock at up to 20 stores per call.

Are Walgreens prices per store?

+

No. Prices on search and product are Walgreens' national online prices, the same whichever store you pass; the product response marks this with store_pricing false. What is per store is stock: /api/v1/walgreens/stock returns each store's status and unit count.

What does store_id do on search?

+

It fills each result's availability.text for that store, for example "Not sold at your store" or "In stock but not available for pickup". It does not change prices or filter results. Without it, availability.text reads "Store inventory unavailable". For unit counts, use /api/v1/walgreens/stock.

How do I check stock at many Walgreens stores at once?

+

Call /api/v1/walgreens/stock with a product_id and up to 20 store numbers. Each store comes back with status (In Stock, Out of Stock, or Not Available when it does not carry the item), quantity and in_stock, plus in_stock_count across all of them. Near ZIP 60614, all 5 stores checked had the Walgreens Shiny & Smooth Shampoo, 1 to 5 units each.

How do I find a Walgreens store number?

+

POST a ZIP code, or a latitude and longitude, to /api/v1/walgreens/stores. It returns Walgreens and Duane Reade stores nearest first within 25 miles by default (up to 100), 10 a page by default and up to 25, with store_number, address, phone, distance in miles and opening and closing time. ZIP 60614 returned store 15350, 834 W Armitage Ave, at 0.36 miles.

Does the API return Walgreens promotions and coupons?

+

Yes. Search and product carry promotion (for example "Buy 1, Get 1 50% OFF"), coupon ("$2 off 2 Coupon"), loyalty_message for rewards offers and rebate for sitewide codes. Product also returns offers[] with each offer's title, details and start and end dates, plus savings_amount and savings_percent.

How are sale prices shown?

+

In dollars, as decimals. price is the regular price and sale_price the single-unit sale price; on_sale is true when sale_price is lower. A multi-buy sale keeps its wording in sale_text, for example "2/$12.00 or 1/$6.99".

Does it include pharmacy or prescription data?

+

No. The Walgreens API covers front-store retail products only: health, beauty, household, personal care and the rest of the walgreens.com shop. Nothing from the pharmacy, prescriptions or patient accounts is returned.

Does the API return Walgreens reviews?

+

It returns each product's star rating and review count on search and product. Review text is not available for Walgreens.

How many results does a search return?

+

Up to 70 products per page, across up to 100 pages, with total_results and total_pages for the whole query. Our "shampoo" capture reported 533 results over 8 pages. Eleven sort orders are available, including price, unit price, rating and newest arrivals.

How much does a Walgreens request cost?

+

Search, product and stores cost 2 credits each; stock costs 4 credits for up to 20 stores. New accounts get 50 free credits on signup, one time, with no card required. Paid plans start at $30 per month for 7,000 credits.

How fresh is the data?

+

Every request fetches live from Walgreens at the moment you call it, and nothing is cached. Each response carries fetched_at, the time the data was retrieved.

Which languages and tools are supported?

+

Every endpoint is a plain HTTPS POST with a JSON body, so any language works. Scavio also ships Python and JavaScript SDKs, a remote MCP server at mcp.scavio.dev for AI agents, and an n8n community node, all on the same API key.

Is using Walgreens data legal?

+

Scavio returns publicly available Walgreens retail data and does not access accounts, prescriptions or order history. You remain responsible for how you use the data, including compliance with Walgreens' terms. Talk to your own counsel for your specific use case.

Explore more of Scavio

Walgreens API docs

All 4 endpoints with params and real responses.

Walmart API

Search, product, reviews and store-level pricing.

Target API

Search, categories, detail and reviews.

Dollar General API

Store prices, units on hand, deals and coupons.

Kroger API

Grocery prices and promos across Kroger banners.

Costco API

Warehouse prices and stock, coupons and clearance.

Try the Walgreens API free

50 free credits on signup, no card. Your first request is a POST with a product name in it.

Get your API keySee pricing
ScavioScavio

One scraper API for every social, search, e-commerce and real estate platform. Built for AI agents.

Product

  • Features
  • Pricing
  • Dashboard
  • Affiliates

Developers

  • Documentation
  • API Reference
  • Quickstart
  • MCP Integration
  • Python SDK

Alternatives

  • Tavily Alternative
  • SerpAPI Alternative
  • Firecrawl Alternative
  • Exa Alternative
  • Serper Alternative
  • Tavily vs Scavio
  • SerpAPI vs Scavio
  • All alternatives
  • Compare Scavio vs alternatives

Search APIs

  • Google Search API
  • Amazon Product API
  • YouTube API
  • Reddit API
  • Walmart Product API
  • TikTok API
  • Instagram API

Tools

  • All Tools

© 2026 Scavio. All rights reserved.

Featured on TAAFT
Terms of ServicePrivacy Policy