Ulta Beauty
Ulta Beauty Store Availability API
In-store pickup availability of one Ulta Beauty shade or size at the 10 stores nearest a US ZIP code: store id, name, address, distance in miles, open now and its hours label, curbside label, in_stock and the availability label. Ulta publishes in stock or out of stock per store, not unit counts. Costs 1 credit per request.
POST/api/v1/ulta/stores
Authorizations
AuthorizationstringheaderrequiredBearer authentication header of the form Bearer <token>, where <token> is your Scavio API key (e.g. Bearer sk_live_your_key).
Body
application/jsonproduct_idstringrequiredUlta product id, the product_id of a search, category or product result.
Example: pimprod2057119
sku_idstringrequiredSku id of the shade or size: a result's sku_id, or a variants[].sku_id from the product endpoint.
Example: 2648428
zipstringrequiredUS ZIP code to search around.
Example: 10001
Request
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key")
res = client.ulta.stores(product_id="pimprod2057119", sku_id="2648428", zip="10001")["data"]
print(res["in_stock_count"], "of", res["count"], "stores have it")
for s in res["stores"]:
print(s["store_id"], s["name"], s["distance_miles"], "mi", s["availability"])Response
"product_id": "pimprod2057119",
"sku_id": "2648428",
"zip": "10001",
"count": 10,
"in_stock_count": 7,
},
"response_time": 3096
}