Byrdie APIbyrdie.com ↗
Search Byrdie.com editorial articles by keyword and fetch full structured article content including sections, authors, FAQs, and timestamps via 2 REST endpoints.
What is the Byrdie API?
The Byrdie API exposes 2 endpoints that let you search and retrieve editorial beauty and wellness content from byrdie.com. The search_articles endpoint returns up to 24 ranked article summaries per page — including titles, canonical URLs, categories, and thumbnails — while get_article delivers the full structured body of any article: headed sections, author names, breadcrumbs, FAQ blocks, and ISO 8601 timestamps.
curl -X GET 'https://api.parse.bot/scraper/b619224f-8e99-440b-a3de-2a0bdd4c7aa2/search_articles?query=shea+butter' \ -H 'X-API-Key: $PARSE_API_KEY'
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 byrdie-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: Byrdie beauty articles SDK — search, drill into full text."""
from parse_apis.byrdie_com_api import Byrdie, ArticleNotFound
client = Byrdie()
# Search for articles about a topic; limit= caps total items fetched.
for summary in client.article_summaries.search(query="shea butter", limit=5):
print(summary.title, "|", summary.category, "|", summary.updated)
# Drill into the first search hit to read the full article body.
hit = client.article_summaries.search(query="moisture barrier repair", limit=1).first()
if hit is not None:
article = hit.details()
print(article.title)
print(article.description)
print("Authors:", ", ".join(article.authors))
print("Published:", article.date_published)
for section in article.sections or []:
if section.heading:
print(f"\n## {section.heading}")
for para in section.paragraphs:
print(para[:120])
# Point lookup by URL discovered from the previous search result.
if hit is not None:
try:
full = client.articles.get(url=hit.url)
print(full.title, "—", len(full.faqs), "FAQs")
except ArticleNotFound:
print("Article no longer available")
print("exercised: article_summaries.search / details / articles.get")
Keyword search over Byrdie.com articles using the site's own search. Returns one page of up to 24 article summaries (title, canonical article url, category, last-updated label, thumbnail) ordered by the site's relevance ranking. Pagination is offset-based: pass offset (a multiple of 24; omitted = 0) and follow next_offset while has_more is true. A query the site has no results for returns an empty results array with has_more false. One round trip per call.
| Param | Type | Description |
|---|---|---|
| queryrequired | string | Free-text search terms, e.g. one shape: shea butter benefits. |
| offset | integer | Zero-based result offset for paging; use next_offset from the previous page. |
{
"type": "object",
"fields": {
"query": "the search terms as sent",
"offset": "offset used for this page",
"results": "array of article summaries: doc_id (site document id string), title, url (canonical article URL; pass unchanged to get_article), category (site section label), updated (display date label, e.g. Oct 31, 2023), image_url",
"has_more": "true when the site offers a following page",
"page_size": "site page size (24)",
"next_offset": "offset for the next page, or null when has_more is false"
},
"sample": {
"data": {
"query": "moisture barrier repair",
"offset": 0,
"results": [
{
"url": "https://www.byrdie.com/drunk-elephant-bora-barrier-cream-review-8407995",
"title": "Drunk Elephant's Rich New Moisturizing Cream Will Save Your Flaky Winter Skin",
"doc_id": "8407995",
"updated": "Nov 30, 2023",
"category": "Product & Brand News",
"image_url": "https://www.byrdie.com/thmb/uF-C0Qb7GlKIOv02zvyckldbXVY=/600x400/filters:no_upscale():max_bytes(150000):strip_icc():format(webp)/drunkelephantborabarrierrepaircream-9e6377d9ff3547b799f7ff30307ca48e.png"
}
],
"has_more": true,
"page_size": 24,
"next_offset": 24
},
"status": "success"
}
}About the Byrdie API
Endpoints and What They Return
The search_articles endpoint accepts a free-text query string (e.g. shea butter benefits, fragrance layering, moisture barrier repair) and returns an array of up to 24 article summaries ordered by the site's own relevance ranking. Each summary includes a doc_id, title, canonical url, category, updated_label, and a thumbnail image URL. Pagination is offset-based: pass offset as a multiple of the page size (24), and check has_more plus next_offset to walk through additional result pages.
Full Article Structure via get_article
Pass any url from search_articles results directly to get_article to retrieve the complete article. The response includes a sections array where each element holds an optional heading (h2 or h3, or null for the opening section) and its associated paragraphs. Additional fields cover title, description, authors, breadcrumbs (hierarchical category path), date_modified (ISO 8601 with timezone offset), updated_label (the site's display string), image_url, and a faqs array of {question, answer} pairs when the article includes a FAQ block.
Coverage and Content Types
Byrdie publishes editorial content across skincare, haircare, makeup, fragrance, wellness, and body care. The breadcrumbs field in article responses reflects Byrdie's own editorial hierarchy, making it straightforward to group results by topic area. The updated_label and date_modified fields let you detect freshness and filter for recently revised articles without additional requests.
The Byrdie API is a managed, monitored endpoint for byrdie.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when byrdie.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 byrdie.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.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a beauty ingredient research tool that pulls Byrdie articles by ingredient name using
queryinsearch_articles - Aggregate skincare routine guides by querying keywords like 'moisture barrier' or 'retinol beginner' and extracting the
sectionsbody - Power an editorial content feed filtered by
breadcrumbscategories such as fragrance or haircare - Extract FAQ content from
get_articleresponses to populate a beauty Q&A knowledge base - Track editorial updates by comparing
date_modifiedtimestamps across repeat fetches of the same article URL - Compile author-attributed article indexes using the
authorsfield alongside articletitleandurl - Prototype a beauty topic summarizer using the
descriptionandsectionsparagraphs from structured article responses
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Byrdie have an official developer API?+
What does get_article return beyond the article body text?+
sections array (headings and paragraphs), get_article returns title, description, authors, breadcrumbs, image_url, date_modified (ISO 8601), updated_label (site display string), and a faqs array of question-answer pairs when the article contains a FAQ block. The faqs array is empty for articles without one.Does search_articles support filtering by category or date range?+
query and an offset for pagination; there are no dedicated category or date-range filter parameters. Results reflect the site's own relevance ranking. You can fork this API on Parse and revise it to add category or date filtering as additional input parameters.Are product reviews or product listings from Byrdie accessible through this API?+
How does pagination work in search_articles?+
page_size). To fetch the next page, pass the next_offset value from the current response as the offset parameter in your next request. When has_more is false, next_offset is null and no further pages exist for that query.