For Ulta Beauty prices, shades and store stock inside an app, a price tracker or an AI agent, start with Scavio's Ulta Beauty API. It is the one option here that tells you whether a specific shade is in stock at the 10 Ulta Beauty stores nearest a ZIP code, in one call, alongside search and category listings with list and sale prices and a product endpoint that returns every shade with its GTIN, ingredients and the latest reviews. Every call costs 1 credit, and Scavio starts from $2 per 1,000 requests on the Growth plan billed yearly.
You need a third-party source because Ulta Beauty does not publish a developer API. Its affiliate program for publishers runs through the Impact network and pays referral commissions; it does not hand out catalogue, price or stock data. On ulta.com, store availability is checked one product and one shade at a time.
We build Scavio, so read this with that bias in mind. Every Scavio number below comes from live calls we made on November 2, 2026. Every competitor detail was read off the vendor's own page that day, and where a detail was not published we say so. The screenshots are each vendor's own Ulta page, captured the same day.
Which Ulta Beauty API fits your job?
| Tool | Choose it for | Store-level stock | Shades and reviews | Price (checked Nov 2, 2026) |
|---|---|---|---|---|
| Scavio | Apps and agents that need prices, shades and which store has a shade | In Stock or Out of Stock per shade at the 10 stores nearest a ZIP, 1 call | Every shade with sku id and GTIN; 5 most recent reviews | From $2 per 1,000 requests (Growth, yearly); 1 credit a call; 50 free credits |
| Apify actors | Scheduled exports from category, brand or product URLs | Not documented; online stock status only | Shades grouped per product; separate reviews actors | $2.50 per 1,000 results on the free plan, $2.00 on Gold (autofacts); reviews from $0.35 per 1,000 |
| Bright Data | Large files of product records | Not documented | Products, images and reviews collectors | $1.50 per 1,000 records; $499/mo for 384,000; 5,000 free records a month |
| Actowiz | A ready-made monthly file, shade by shade | No; an IsInStock flag per row | Every shade of every product; rating and review count | $499 a month |
| Grepsr | A managed crawl built and run for you | Not specified | Reviews and attributes, fields agreed per project | Not published; contact sales |
Ulta stock is decided shade by shade, store by store
An Ulta product is really a set of shades, and each shade has its own stock at each store. A shopper who wants one exact colour, or a brand checking its shelf, needs the answer for that shade at the stores they can reach. We asked Scavio's stores endpoint about every shade of two lip oils at the 10 Ulta Beauty stores nearest Manhattan ZIP 10001: 26 calls, 26 credits.
The $9 e.l.f. Glow Reviver Lip Oil was in stock in 93 of 100 shade-store checks, but the gaps were not where you would guess. The nearest store, 2 Herald Square at 0.17 miles, was out of 4 of the 10 shades: Crystal Clear, Pink Quartz, Red Delicious and Rose Envy. Hot As Fudge was out at the next two stores, on Sixth Avenue and East 86th Street, and in stock at the other eight. A shopper who checked only the nearest store would have walked to the wrong one.
The $42 Dior Addict Lip Glow Oil showed a different pattern: all 16 shades in stock at the 4 nearest stores, three in Manhattan and one in Edgewater, New Jersey, and every shade out at the other 6. A split that clean, the same for every shade, is consistent with Dior being sold in only some Ulta stores rather than with shades selling through. The same e.l.f. lip oil near Chicago ZIP 60601 was in stock in 97 of 100 checks. Checking this on ulta.com means one lookup per shade, and Scavio returns all 10 stores for that shade in one call.
1. Scavio: prices, every shade and store stock per shade

Scavio's Ulta Beauty API is 4 POST endpoints, each 1 credit. Measured on November 2:
- Search: "lipstick" returned 66 products on page 1 of 186 results in 1.5 s, 3 of them sponsored, each with list price, sale price, dollars off, promo text, rating, review count, badge and shade count. Maybelline Serum Lipstick came back at a list price of $9.99 and a sale price of $4.99 across 16 colors.
- Category: /shop/makeup/lips/lip-oil returned 67 products on page 1 of 147 in 2.2 s, in the site's own order, with the same fields and a
sponsoredflag on each. - Product: e.l.f. Glow Reviver Lip Oil returned all 10 shades with their sku ids and shade descriptions, the GTIN 609332820043, ingredients, usage, breadcrumbs, 9 images, ship, pickup and same-day options, a 4.7 rating from 11,774 reviews and the 5 most recent reviews, the newest dated October 26, 2026.
- Stores: one shade at the 10 nearest stores with
in_stock, the availability label, address, distance, open-now label and curbside pickup. Our 36 store calls took 0.7 to 8.3 seconds, with a median of 1.3.
What it does not do: reviews stop at the five most recent, with no paging, so review history needs a dedicated reviews actor. Store stock is Ulta's In Stock or Out of Stock label, never a unit count, and one call covers one shade and 10 stores. There is no stored price history; you build one by calling on a schedule. The benefit is one key and one JSON format for Ulta alongside Sephora, Target, Walmart and Amazon, plus an MCP server for agents. How to get Ulta Beauty product data walks through each call with captured responses.
2. Apify actors: scheduled exports from Ulta URLs

The Apify Store lists more than 20 Ulta actors, most with a few dozen users. autofacts/ulta-scraper, with 55 users, takes category, brand, sale or product URLs, groups every shade and size into one record with each shade's undertone and finish, and returns list and sale prices, a stock status, rating and review count. Its price was lowered on October 26, 2026 to $2.50 per 1,000 results on Apify's free plan and $2.00 on Gold and above. The most-used, mscraper/ulta-scraper with 109 users, charges $5.00 per 1,000 results, down to $4.00 on higher plans. Neither documents keyword search or store-level stock. For review history, saswave/advanced-ulta-reviews-scraper charges $0.35 per 1,000 reviews plus a small start fee. Actors run as jobs that write to a dataset, and each is maintained by its author, so pin the one you test.
3. Bright Data: records by the thousand

Bright Data's Ulta Scraper API has collectors for Ulta products by URL, products by sitemap, images and reviews, and lists names, prices, ingredients, shades, ratings, reviews and availability among its fields, without documenting store-level stock. It costs $1.50 per 1,000 records pay-as-you-go, or $499 a month for 384,000 records with more at $1.30 per 1,000, and every account gets 5,000 free records a month. Because it bills per record, a category pull of 147 products is 147 records. Choose it when the deliverable is a large file rather than an answer inside a request.
4. Actowiz: a monthly shade-level file

Actowiz sells an Ulta Beauty USA monthly dataset for $499 a month: 32 columns per shade and size, including price, sale price, discount, an IsInStock flag, size, colour, rating and review count, delivered monthly as Excel and CSV, with JSON and Parquet on request. The page said the file was last updated on November 2, 2026, and offers a free sample of 50 shade rows. Its Ulta scraping service builds custom feeds on plans advertised from $500 a month. Choose it when a monthly snapshot of the whole catalogue is enough and you would rather buy a file than run calls.
5. Grepsr: a managed crawl built for you

Grepsr's Ulta Beauty Scraper is a managed service: its team writes and runs the crawler and delivers XLS, CSV or JSON on a schedule that can run from monthly to every minute. The page lists product information, attributes, inventory availability, competitor prices and customer reviews, without specifying store-level stock, and publishes no price, pointing to sales instead. Choose it when you want someone else to own the crawl and the fields are agreed per project.
General scraping APIs can also fetch ulta.com pages, but they return HTML or their own parser's output rather than Ulta fields; check what each returns for a product with many shades before you compare.
Pick by the number you need
If your users act on which store has a shade today, or on what Ulta charges after a markdown, keeping that current is the ongoing work, and it is what Scavio's Ulta Beauty API handles. A shade finder covering 25 products with 10 shades each at 5 metro ZIP codes, refreshed daily, is 1,250 store calls a day and 37,500 credits a month: $75 at the Growth-yearly rate of $2 per 1,000 credits, for 12,500 shade-and-store statuses a day. Watching prices and sales across 3 categories of 3 pages each, daily, adds 270 credits a month, about $0.54. Try the Ulta Beauty API free, 50 credits, no card, or try the endpoints in the playground.
Reference: all 4 Ulta Beauty endpoints · search docs · product docs · stores docs · how to get Ulta Beauty product data · checking Ulta stock at nearby stores
Frequently asked questions
Does Ulta Beauty have a public API?
No. Ulta Beauty does not publish a developer API for product, price, review or store-stock data. Its affiliate program for publishers runs through the Impact network, which handles referral links and commissions rather than catalogue data. To read prices, shades and store stock programmatically, use a third-party source such as Scavio's Ulta Beauty API.
Which Ulta API shows in-store stock at nearby stores?
Scavio's stores endpoint takes a product id, a shade's sku id and a US ZIP and returns In Stock or Out of Stock for that shade at the 10 nearest Ulta Beauty stores, with distance, hours and curbside pickup. None of the other options compared here document store-level stock: the Apify actors and Actowiz's dataset carry an online stock flag, and Bright Data lists general availability.
What is the cheapest way to get Ulta product data?
Per row, a file or record plan: Bright Data charges $1.50 per 1,000 records and the most-used Apify actors $2.00 to $5.00 per 1,000 results, both checked November 2, 2026. Scavio is $2 per 1,000 calls on its Growth plan billed yearly, and one search or category call returns a page of up to 64 products plus sponsored placements. Actowiz sells a monthly shade-level file for $499 a month.
Can I get full Ulta review histories through an API?
Not from every option. Scavio's product endpoint returns the rating, review count and the five most recent reviews, with no paging into older ones. For a product's full review history, Apify has dedicated Ulta reviews actors, such as one charging $0.35 per 1,000 reviews, and Bright Data has an Ulta reviews collector.
Is Ulta's in-store stock a unit count?
No. Ulta publishes In Stock or Out of Stock per store for pickup, not how many units are on the shelf, so any API that reads it returns a status. Store employees on Reddit add that the label can lag sales and returns, so for a single scarce item, calling the store is still the final check.