Looking for the overview — what this API returns, what it costs, and a call you can run without a key? See the Walgreens API page →
E-commerce & Marketplaces

Walgreens API & Scraper

Walgreens API returns live Walgreens data as clean JSON for walgreens The primary endpoint, search, returns matching records including product id, sku id, title, display title and brand.

4 actionsLive JSON1,000 free credits$0.67–$1.50 / 1,000 creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

Developers reach for it when they need to track product listings, prices, availability, variants and reviews without maintaining one-off scraping code or separate API contracts. If you were about to build or fix a Walgreens scraper, this API is the maintained alternative — it returns the same data as clean JSON, with the proxies, rotation and anti-bot handling already solved. This page covers the live example, request shape, response shape and available actions: search, category/products, product/detail, product/batch. Every request uses the same ReefAPI envelope, one API key and one shared credit pool, so it fits alongside the rest of your data stack.

Live example

Real request and response JSON

Captured from the indexed primary action, search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/walgreens/v1/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "query": "ibuprofen",
    "max_results": 24
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "walgreens",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 2175.8,
    "record_count": 24,
    "bytes": 903533,
    "cache_hit": false,
    "completeness_pct": 22,
    "stop_reason": "limit_reached",
    "upstream_requests": 1,
    "charged_credits": 3,
    "version": "0.1.0",
    "request_id": "0df1efc2b6ff447e"
  },
  "data": {
    "results": [
      {
        "product_id": "300394826",
        "sku_id": "400615937",
        "title": "Ibuprofen Mini Softgels",
        "display_title": "Walgreens Ibuprofen Mini Softgels",
        "url": "https://www.walgreens.com/store/c/walgreens-ibuprofen-mini-softgels/ID=300394826-product",
        "brand": "Walgreens",
        "brand_id": "118",
        "size": "20 ea",
        "product_type": "Non-Aspirin Pain Relievers",
        "upc": "31191720827",
        "gtin": "00311917208275",
        "store_upc": "311917208275",
        "pln": "40000487581",
        "image": "https://pics.walgreens.com/prodimg/615937/450.jpg",
        "image_thumb": "https://pics.walgreens.com/prodimg/615937/155.jpg",
        "rating_half_star": 4.5,
        "rating_display": "4.5 out of 5",
        "review_count": 134,
        "in_stock": true,
        "online_status": "instock",
        "store_status": "instock",
        "clearance": false,
        "own_brand": true,
        "age_restricted": false,
        "fsa_hsa_eligible": true,
        "promo_label": "SALE",
        "coupon_label": null,
        "coupon_terms": null,
        "sitewide_offer": "$5 OFF $25+ sitewide with code NOW5 or $10 OFF $40+ sitewide with code NOW10",
        "active_ingredients": [
          "Solubilized Ibuprofen Equal To 200 mg Ibuprofen (NSAID)*",
          "(Present as the free acid and potassium salt)",
          "*Nonsteroidal Anti-Inflammatory DrugPain Reliever/Fever Reducer"
        ],
        "inactive_ingredients": [
          "FD&C Green #3",
          "Gelatin",
          "Medium-Chain Triglycerides"
        ],
        "category_ids": {
          "tier1": "359438",
          "tier2": "360547",
          "tier3": "361471"
        },
        "same_day_purchase_limit": 12,
        "currency": "USD",
        "price": 4.49,
        "price_display": "$4.49",
        "price_form": "single",
        "regular_price": 4.49,
        "regular_price_display": "$4.49",
        "sale_price": null,
        "sale_price_display": null,
        "on_sale": false,
        "source_on_sale_flag": false,
        "multi_buy": null,
        "regular_multi_buy": null,
        "single_unit_price": null,
        "unit_price": 0.22,
        "unit_price_unit": "ea",
        "price_rule": "Buy 1, Get 1 50% OFF"
      },
      {
        "product_id": "300429191",
        "sku_id": "400650887",
        "title": "Ibuprofen 200 mg Tablets",
        "display_title": "Walgreens Ibuprofen 200 mg Tablets",
        "url": "https://www.walgreens.com/store/c/walgreens-ibuprofen-200-mg-tablets/ID=300429191-product",
        "brand": "Walgreens",
        "brand_id": "118",
        "size": "100 ea",
        "product_type": "Non-Aspirin Pain Relievers",
        "upc": "31191720478",
        "gtin": "00311917204789",
        "store_upc": "311917204789",
        "pln": "40000720587",
        "image": "https://pics.walgreens.com/prodimg/650887/450.jpg",
        "image_thumb": "https://pics.walgreens.com/prodimg/650887/155.jpg",
        "rating_half_star": 4.5,
        "rating_display": "4.5 out of 5",
        "review_count": 92,
        "in_stock": true,
        "online_status": "instock",
        "store_status": "instock",
        "clearance": false,
        "own_brand": true,
        "age_restricted": false,
        "fsa_hsa_eligible": true,
        "promo_label": "SALE",
        "coupon_label": null,
        "coupon_terms": null,
        "sitewide_offer": "$5 OFF $25+ sitewide with code NOW5 or $10 OFF $40+ sitewide with code NOW10",
        "active_ingredients": [
          "Ibuprofen (NSAID)* - 200 mgPain Reliever/Fever Reducer",
          "*nonsteroidal anti-inflammatory drug"
        ],
        "inactive_ingredients": [
          "Colloidal Silicon Dioxide",
          "Croscarmellose Sodium",
          "Iron Oxide Red"
        ],
        "category_ids": {
          "tier1": "359438",
          "tier2": "360547",
          "tier3": "361471"
        },
        "same_day_purchase_limit": 12,
        "currency": "USD",
        "price": 9.99,
        "price_display": "$9.99",
        "price_form": "single",
        "regular_price": 9.99,
        "regular_price_display": "$9.99",
        "sale_price": null,
        "sale_price_display": null,
        "on_sale": false,
        "source_on_sale_flag": false,
        "multi_buy": null,
        "regular_multi_buy": null,
        "single_unit_price": null,
        "unit_price": 0.1,
        "unit_price_unit": "ea",
        "price_rule": "Buy 1, Get 1 50% OFF"
      },
      {
        "product_id": "300396892",
        "sku_id": "sku6314529",
        "title": "Ibuprofen 200 mg Softgels",
        "display_title": "Walgreens Ibuprofen 200 mg Softgels",
        "url": "https://www.walgreens.com/store/c/walgreens-ibuprofen-200-mg-softgels/ID=300396892-product?skuId=sku6314529",
        "brand": "Walgreens",
        "brand_id": "118",
        "size": "40 ea",
        "product_type": "Non-Aspirin Pain Relievers",
        "upc": "31191718331",
        "gtin": "00311917183312",
        "store_upc": "311917183312",
        "pln": "40000934531",
        "image": "https://pics.walgreens.com/prodimg/615192/450.jpg",
        "image_thumb": "https://pics.walgreens.com/prodimg/615192/155.jpg",
        "rating_half_star": 4.5,
        "rating_display": "4.5 out of 5",
        "review_count": 209,
        "in_stock": true,
        "online_status": "instock",
        "store_status": "instock",
        "clearance": false,
        "own_brand": true,
        "age_restricted": false,
        "fsa_hsa_eligible": true,
        "promo_label": "SALE",
        "coupon_label": null,
        "coupon_terms": null,
        "sitewide_offer": "$5 OFF $25+ sitewide with code NOW5 or $10 OFF $40+ sitewide with code NOW10",
        "active_ingredients": [
          "Solubilized Ibuprofen Equal to 200 mg IbuprofenPain Reliever/Fever Reducer",
          "(Present as the free acid and potassium salt)Pain Reliever/Fever Reducer",
          "(NSAID [Nonsteroidal Anti-Inflammatory Drug])"
        ],
        "inactive_ingredients": [
          "Ammonium Hydroxide",
          "FD&C Green #3",
          "Iron Oxide Black"
        ],
        "category_ids": {
          "tier1": "359438",
          "tier2": "360547",
          "tier3": "361471"
        },
        "same_day_purchase_limit": 12,
        "currency": "USD",
        "price": 6.99,
        "price_display": "$6.99",
        "price_form": "single",
        "regular_price": 6.99,
        "regular_price_display": "$6.99",
        "sale_price": null,
        "sale_price_display": null,
        "on_sale": false,
        "source_on_sale_flag": false,
        "multi_buy": null,
        "regular_multi_buy": null,
        "single_unit_price": null,
        "unit_price": 0.17,
        "unit_price_unit": "ea",
        "price_rule": "Buy 1, Get 1 50% OFF"
      }
    ],
    "query": "ibuprofen",
    "matched_keyword": "ibuprofen",
    "total": 109,
    "online_total": 108,
    "in_store_total": 109,
    "returned": 24,
    "page_size_published": 72,
    "has_more_on_source": true,
    "resolved_via": "search_page",
    "category_id": null
  }
}
Actions

What the Walgreens API does

ActionDescriptionConcrete use caseKey params
searchSearch walgreens.com by keyword and get up to 72 products with price, promotion, unit price, online and in-store availability, UPC and GTIN-14, brand, size, half-star rating and review count, plus the active and inactive ingredient lists for OTC items. MEASURED LIMIT: this surface publishes ONE page — `?p=2` is silently ignored by Walgreens (same 72 rows, same first product), so `search` returns at most 72 products and reports the source's own total beside them. For the full depth of a shelf use `category/products`, which really pages. When a keyword is itself a Walgreens aisle (for example `toothpaste`), the site redirects to that aisle; the engine follows it into the category listing and `resolved_via` tells you which route answered.Pricing teams call search to search walgreens.com by keyword and get up to 72 products with price, promotion, unit price,….query, max_results
category/productsList the products of one or more Walgreens categories (tier-3 aisle ids, the same ids every product row reports as `category_ids.tier3`) with REAL pagination: up to 100 products per page and up to 15 pages. Several category ids in one call are merged into a single result set by Walgreens. Each row carries the same price, promotion, UPC/GTIN, availability and ingredient fields as `search`. MEASURED CEILING: Walgreens refuses page 16 and above at every page size, so at most 1,500 products of a category are reachable even when it reports more; `last_page`, `page_cap` and `has_more` say exactly where you are.Marketplace operators call category/products to list the products of one or more Walgreens categories (tier-3 aisle ids, the same ids every p….category_id, page, page_size
product/detailThe full Walgreens product record by product id or product URL: shelf price and every promotion kept apart, the EXACT review average (the list surfaces only publish a half-star bucket), unit price, employee price labelled as such, UPC and GTIN-14, PLN, online/pickup/same-day availability, FSA-HSA and EBT eligibility, the marketing description, OTC uses and warnings, the active and inactive ingredient groups, shipping weight, pack dimensions and the US states Walgreens will not ship it to, plus the three-level category path. Walgreens does not publish individual review texts on this surface.Catalog enrichment teams call product/detail to get the full Walgreens product record by product id or product URL.product_id
product/batchThe same full product record as `product/detail` for up to 50 product ids in ONE upstream call — the cheapest way to refresh a basket, a price file or a GTIN map. Walgreens answers one record per id (asked 15/25/50 ids, got 15/25/50); ids it does not know are reported in `missing_ids` instead of failing the call.Retail analysts call product/batch to get the same full product record as `product/detail` for up to 50 product ids in ONE upstream call.product_ids
Code samples

Call search from your stack

curl -X POST https://api.reefapi.com/walgreens/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"ibuprofen","max_results":24}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.walgreens.search with {"query":"ibuprofen","max_results":24}.
Use cases

Who uses this API and why

  • Pricing teams use Walgreens to search walgreens.com by keyword and get up to 72 products with price, promotion, unit price,….
  • Marketplace operators use Walgreens to list the products of one or more Walgreens categories (tier-3 aisle ids, the same ids every p….
  • Catalog enrichment teams use Walgreens to get the full Walgreens product record by product id or product URL.
  • Retail analysts use Walgreens to get the same full product record as `product/detail` for up to 50 product ids in ONE upstream call.
FAQ

Questions developers ask before integrating

What is the Walgreens API?

Walgreens API is a ReefAPI endpoint group for walgreens It returns live JSON through POST requests under /walgreens/v1.

Is the Walgreens API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Walgreens calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Walgreens login or account?

No login to Walgreens is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Walgreens data?

The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Walgreens API use?

Walgreens actions currently cost 1-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.

Can I call Walgreens from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call walgreens actions with the same key, credit pool and JSON envelope used by normal REST requests.

Is the Walgreens API a Walgreens scraper?

It is the managed alternative to a DIY Walgreens scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same walgreens back as clean JSON.

Why does my Walgreens scraper keep getting blocked?

Most Walgreens scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked calls are free.

docs / walgreens

Walgreens

Walgreens

base /walgreens/v14 endpoints
post/walgreens/v1/category/products2 credits

List the products of one or more Walgreens categories (tier-3 aisle ids, the same ids every product row reports as `category_ids.tier3`) with REAL pagination: up to 100 products per page and up to 15 pages. Several category ids in one call are merged into a single result set by Walgreens. Each row carries the same price, promotion, UPC/GTIN, availability and ingredient fields as `search`. MEASURED CEILING: Walgreens refuses page 16 and above at every page size, so at most 1,500 products of a category are reachable even when it reports more; `last_page`, `page_cap` and `has_more` say exactly where you are.

ParameterAllowed / rangeDescription
category_idrequired—One or more Walgreens tier-3 category ids, e.g. `361471` (Non-Aspirin Pain Relievers) or `360481,360967`. Take them from any product row's `category_ids.tier3`, or from `category.tier3.id` on a product record. Several ids are merged by the source into one list.
page = 1optional1–151-based page. Walgreens refuses page 16 and above at every page size (measured), so the usable range is 1-15.
page_size = 24optional1–100Products per page, 1-100. 101 and above is refused by the source, so larger values are clamped to 100.
Try in playground →
post/walgreens/v1/product/detail1 credit

The full Walgreens product record by product id or product URL: shelf price and every promotion kept apart, the EXACT review average (the list surfaces only publish a half-star bucket), unit price, employee price labelled as such, UPC and GTIN-14, PLN, online/pickup/same-day availability, FSA-HSA and EBT eligibility, the marketing description, OTC uses and warnings, the active and inactive ingredient groups, shipping weight, pack dimensions and the US states Walgreens will not ship it to, plus the three-level category path. Walgreens does not publish individual review texts on this surface.

ParameterAllowed / rangeDescription
product_idrequired—Walgreens product id as published in `product_id` on any row (`300394826` or `prod6330754`). A full product URL (`https://www.walgreens.com/store/c/.../ID=300394826-product`) is accepted and the id is read out of it.
Try in playground →
post/walgreens/v1/product/batch3 credits

The same full product record as `product/detail` for up to 50 product ids in ONE upstream call — the cheapest way to refresh a basket, a price file or a GTIN map. Walgreens answers one record per id (asked 15/25/50 ids, got 15/25/50); ids it does not know are reported in `missing_ids` instead of failing the call.

ParameterAllowed / rangeDescription
product_idsrequired—1-50 Walgreens product ids, as a list or a comma-separated string: `300394826,prod3933218,prod6330754`. More than 50 is clamped to the first 50 and reported in `meta.warnings`.
Try in playground →
Built for volume
5M+ requests a day

Measured at 60 requests a second across the fleet, with no central bottleneck. Volume pricing is on request, and per-key limits are raised for high-volume accounts.

Missing a source?
We build it

Tell us a site we do not cover yet and it becomes an engine. A customer asked for bestprice.gr on a Sunday and it was in the catalog the next day.

Support
2 minute median reply

Median time from a question in the live chat to the first answer, measured across every answered conversation. Setup help included, no support tier to buy.

One key, one balance
Every API included

No per-site plans and no separate subscriptions. One key and one credit pool across the whole catalog, so adding a source costs nothing up front.

Planning something large? Tell us the volume and the sources and we will come back with what it costs and what we would have to build.