Discover/Drunk Elephant API
live

Drunk Elephant APIdrunkelephant.com

Access Drunk Elephant skincare, hair care, and body care product data including ingredients, pricing, ratings, and reviews via 5 structured API endpoints.

Endpoint health
verified 3d ago
get_all_collections
get_product_ratings_and_reviews
search_products
get_product_details
get_products_by_category
5/5 passing latest checkself-healing
Endpoints
5
Updated
26d ago

What is the Drunk Elephant API?

The Drunk Elephant API exposes 5 endpoints covering product search, detailed product data, category browsing, customer reviews, and collection discovery across Drunk Elephant's full skincare, hair care, and body care catalog. The get_product_details endpoint returns granular fields including ingredients, usage instructions, price, and availability — identified by either a URL slug or a product SKU.

Try it
Search keyword or phrase (e.g., 'moisturizer', 'vitamin c serum', 'protini')
api.parse.bot/scraper/573b13c1-62d3-468e-b9c7-3da1f20a1ee9/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/573b13c1-62d3-468e-b9c7-3da1f20a1ee9/search_products?query=moisturizer' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace drunkelephant-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Drunk Elephant SDK — search, browse collections, drill into details and reviews."""
from parse_apis.drunk_elephant_product_api import DrunkElephant, CategorySlug, ProductNotFound

client = DrunkElephant()

# Search for products by keyword — limit caps total items fetched.
for product in client.productsummaries.search(query="vitamin c", limit=3):
    print(product.name, product.price, product.rating)

# Browse a collection using the enum for category slugs.
collection = client.collection(slug=CategorySlug.BEST_SELLERS)
for item in collection.products.list(limit=3):
    print(item.name, item.stock_status, item.num_reviews)

# Drill into full product details from a search result.
result = client.productsummaries.search(query="protini", limit=1).first()
if result:
    detail = result.details()
    print(detail.name, detail.price, detail.availability)
    print(detail.how_to_use)
    for ingredient in detail.key_ingredients:
        print(ingredient.name, ingredient.description)

# Read customer reviews for a product.
product = client.products.get(product_id="999DE00000103")
for review in product.reviews.list(limit=3):
    print(review.headline, review.rating, review.nickname)

# Typed error handling for a non-existent product.
try:
    client.products.get(product_id="DOES_NOT_EXIST_999")
except ProductNotFound as exc:
    print(f"Product not found: {exc.product_id}")

print("exercised: productsummaries.search / collection.products.list / details / products.get / reviews.list")
All endpoints · 5 totalmissing one? ·

Full-text search over Drunk Elephant products by keyword. Returns matching products with price, star rating, review count, stock status, and image URL. Supports multi-word queries. Results are not paginated — the site returns all matches in one response.

Input
ParamTypeDescription
queryrequiredstringSearch keyword or phrase (e.g., 'moisturizer', 'vitamin c serum', 'protini')
Response
{
  "type": "object",
  "fields": {
    "items": "array of product summary objects matching the search query"
  },
  "sample": {
    "data": {
      "items": [
        {
          "id": "999DE00000103",
          "name": "Protini™ Polypeptide Firming Refillable Moisturizer",
          "price": 72,
          "img_url": "https://www.drunkelephant.com/dw/image/v2/BBSK_PRD/on/demandware.static/-/Sites-itemmaster_drunkelephant/default/dwc318f9ff/products/images/2026/January/Protini_new_images/Protini-PDP_2026_Standard-Hero.jpg?sw=540&sh=540&sm=fit",
          "variant": "50 ML/1.69 FL OZ",
          "subCategory": "Skincare",
          "productNumReviews": 3455,
          "productOutOfStock": "IN_STOCK",
          "productStarRating": 4.5
        }
      ]
    },
    "status": "success"
  }
}

About the Drunk Elephant API

Product Search and Detail

The search_products endpoint accepts a query string — single-word terms like moisturizer or multi-word phrases like vitamin c serum — and returns an array of matching product objects with name, price, rating, and stock status. For deeper data, get_product_details accepts either a url_slug (e.g., protini-polypeptide-firming-refillable-moisturizer-999DE00000103.html) or a product_id (e.g., 999DE00000103) and returns a full product object including ingredients, how_to_use, availability, and pricing.

Category and Collection Browsing

get_all_collections returns a flat array of all navigable collections with each entry's name, url, and slug — no parameters required. Those slugs feed directly into get_products_by_category, which accepts a required category_slug (e.g., skincare, best-sellers, kits-bundles) and optional pagination controls sz (products per page) and start (pagination index). The response includes a products array, a total count, and a page number.

Ratings and Reviews

get_product_ratings_and_reviews retrieves PowerReviews data for a given product_id. The response contains rollup statistics (aggregate rating, review count, distribution) alongside individual review objects with per-reviewer ratings and text. Pagination is controlled via page (1-based) and limit parameters.

Reliability & maintenanceVerified

The Drunk Elephant API is a managed, monitored endpoint for drunkelephant.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when drunkelephant.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official drunkelephant.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
3d ago
Latest check
5/5 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build an ingredient comparison tool by fetching the ingredients field from get_product_details across multiple SKUs
  • Populate a skincare product catalog filtered by category using get_products_by_category with slugs from get_all_collections
  • Monitor price and stock changes for Drunk Elephant products by polling get_product_details with known product IDs
  • Aggregate customer sentiment by pulling rollup stats and review text from get_product_ratings_and_reviews
  • Build a keyword-driven product discovery tool using search_products with ingredient names or product types as queries
  • Identify best-selling or curated product sets by querying get_products_by_category with the best-sellers or kits-bundles slug
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Drunk Elephant offer an official developer API?+
Drunk Elephant does not publish an official public developer API or developer documentation. This Parse API provides structured access to their product and review data.
What does `get_product_details` return beyond basic pricing?+
The endpoint returns a product object with name, price, ingredients, how_to_use, availability, and additional metadata. You can identify a product using either a url_slug (with the .html extension) or a product_id / SKU string.
How does pagination work in `get_products_by_category`?+
Pass sz to set the number of products per page and start as the zero-based index offset. The response includes a total count so you can calculate how many pages to walk. The category_slug parameter is required; use get_all_collections first to retrieve valid slugs.
Does the API cover wishlist data, user accounts, or order history?+
No. The API covers public product catalog data, category browsing, and customer reviews. Wishlist data, account details, and order history are behind authentication and are not exposed. You can fork this API on Parse and revise it to add an endpoint if that surface becomes accessible.
Are variant-level details (e.g., size or shade options) returned by `get_product_details`?+
The endpoint returns the product object as a single record. Variant-level breakdowns such as multiple size SKUs or shade selectors are not currently surfaced as distinct fields. You can fork the API on Parse and revise it to add variant-level endpoint coverage.
Page content last updated . Spec covers 5 endpoints from drunkelephant.com.
Related APIs in EcommerceSee all →
theordinary.com API
Browse and search The Ordinary's complete product catalog by category or ingredients. View detailed product information including formulas and key actives, apply filters by product type, concern, or ingredient, and read customer reviews to compare and evaluate products.
sephora.com API
Search and browse Sephora's product catalog to find detailed information about beauty items, including specifications, customer reviews, Q&A discussions, pricing, and real-time availability. Filter products by category or brand, and access comprehensive brand listings to discover exactly what you're looking for.
paulaschoice.com API
Search and explore Paula's Choice skincare products with detailed ingredient lists, allergen information, and skin type recommendations all in one place. Find best sellers, look up specific ingredient details, and discover products organized by category to build your perfect skincare routine.
cultbeauty.co.uk API
Browse and search Cult Beauty's product catalog by category or brand, view detailed product information including ingredients and loyalty points, and read customer reviews. Discover new arrivals, sale items, and filter products to find exactly what you're looking for.
ulta.com API
Search and browse Ulta Beauty's complete product catalog with real-time pricing and inventory information, then dive into detailed product specs including ingredients, usage instructions, and customer reviews. Find exactly what you're looking for across all beauty categories with comprehensive product data at your fingertips.
elementvape.com API
Search and browse vape products from Element Vape, including prices, specifications, availability, and category listings. Access detailed product pages with variant options, media galleries, and customer reviews.
ecco-verde.it API
Browse and search the Ecco Verde natural beauty catalogue. Retrieve full product details including ingredients (INCI), variants, and attributes; search by keyword; explore products by category or brand; and fetch personalised product recommendations.
lookfantastic.com API
Browse Lookfantastic category pages to retrieve live product listings (price, ratings, reviews, and ingredients), and fetch detailed information for a specific product by SKU including reviews, directions, and images.