Vogue APIvogue.com ↗
Access Vogue.com beauty articles, headlines, summaries, full article text, and site-wide search via 4 structured JSON endpoints.
What is the Vogue API?
The Vogue.com API exposes 4 endpoints covering beauty section listings, full-site article search, and complete article content including body text, author data, and keyword tags. The get_article endpoint returns the full plain-text body and structured body_blocks alongside a standfirst summary, publish time, and category label. Whether you need the newest headlines from a sub-section or every story matching a phrase like 'fragrance layering', the API returns clean, structured JSON ready to consume.
curl -X GET 'https://api.parse.bot/scraper/14183695-5fd2-4067-99d9-cd5399056802/list_latest_articles?section=view_all' \ -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 vogue-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: Vogue Beauty Articles — browse, search, and read full articles."""
from parse_apis.vogue_com_api import Vogue, BeautySection, SearchSort, ArticleNotFound
client = Vogue()
# Browse the latest beauty headlines across all sections.
for item in client.article_summaries.list_latest(limit=5):
print(item.headline, "|", item.published_at)
# Search for a topic and drill into the top result's full text.
hit = client.article_summaries.search(query="fragrance layering", sort=SearchSort.RELEVANCE, limit=1).first()
if hit is not None:
article = hit.details()
print(article.headline)
print(article.summary)
for block in article.body_blocks[:3]:
print(f" [{block.type}] {block.text[:120]}")
# Page through a specific beauty section.
for item in client.article_summaries.list(section=BeautySection.SKIN, limit=5):
print(item.headline, "|", item.category)
# Point-lookup by path, with error handling for missing articles.
try:
detail = client.articles.get(path="/article/polyglutamic-acid")
print(detail.headline, "|", detail.authors, "|", detail.keywords)
except ArticleNotFound:
print("Article not found on site.")
print("exercised: list_latest / search / details / list / get")
Returns the most recent stories in a Vogue beauty section (the whole Beauty channel or one of its sub-sections), newest first, each with headline, summary (the site's standfirst/description), categories, authors, publish time and path. One round trip; the site publishes a fixed window of roughly 30-36 latest items per section and no further pagination exists on this feed. Use list_beauty_articles to walk further back; use get_article with the emitted path for full text.
| Param | Type | Description |
|---|---|---|
| section | string | Beauty section to list. Omitted = the whole Beauty channel. |
{
"type": "object",
"fields": {
"count": "number of articles returned",
"section": "echo of the requested section key",
"articles": "array of latest stories: id (site content id), headline, summary (site description, may be null when the site provides none), categories (site category labels, e.g. 'Beauty / Skin'), authors (names), published_at (ISO 8601 with offset), path (site path, pass to get_article), url, image_url"
},
"sample": {
"data": {
"count": 30,
"section": "view_all",
"articles": [
{
"id": "6acd613b2c95002f59a96be5",
"url": "https://www.vogue.com/article/polyglutamic-acid",
"path": "/article/polyglutamic-acid",
"authors": [
"Deanna Pai"
],
"summary": "A complementary ingredient to hyaluronic acid, polyglutamic acid can replenish hydration and keep skin plump. Experts share how to use PGA to skin for the best results.",
"headline": "Polyglutamic Acid for Skin: Is It Better Than Hyaluronic Acid?",
"image_url": "https://assets.vogue.com/photos/6ace5690b8bac81c2f168016/master/pass/Portrait%20Kit.jpg",
"categories": [
"Shopping",
"Shopping / Beauty",
"Beauty / Skin"
],
"published_at": "2026-10-14T18:17:32+00:00"
}
]
},
"status": "success"
}
}About the Vogue API
Section Listings and Latest Stories
Two endpoints cover Vogue's beauty content index. list_latest_articles returns the most recent stories in either the whole Beauty channel or a specific sub-section, with each article carrying a headline, summary (the site's standfirst), categories, authors, publish_time, and path. The section parameter narrows scope to a sub-section; omitting it returns the full Beauty channel. list_beauty_articles pages through the 'Latest Stories' listing via a 1-based page integer and also accepts a section filter. Cards returned by the listing endpoint typically carry a null summary; use list_latest_articles when standfirst text is needed for the newest items.
Site-Wide Search
search_articles searches all of vogue.com using a required free-text query parameter. Results include total_results, total_pages, and page_size as reported by the site, plus a has_more flag and next_page number for pagination. An optional sort parameter controls result ordering. The site's search matches loosely — any of the supplied words can match — so total_results may be higher than a strict keyword count would suggest. Search result cards do not carry a summary; retrieve the path from results and pass it to get_article to get the full standfirst and body.
Full Article Content
get_article takes the path field emitted by any listing or search endpoint (e.g. /article/<slug>) and returns the complete story: headline, summary, category, authors, keywords, modified_at, body_text (full plain text with paragraphs separated by newlines), and body_blocks — an ordered array of typed blocks with type values of heading, paragraph, or list. Internal underscore-prefixed keyword tags are stripped from the keywords array before delivery.
The Vogue API is a managed, monitored endpoint for vogue.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when vogue.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 vogue.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?+
- Track new Vogue beauty sub-section coverage by polling list_latest_articles for specific section keys and monitoring the publish_time field.
- Build a beauty trend tracker by running recurring search_articles queries (e.g. 'SPF', 'retinol', 'slugging') and counting total_results over time.
- Extract full article body_text for NLP or topic-modelling pipelines using get_article with paths collected from list_beauty_articles.
- Aggregate author bylines and category labels across pages of list_beauty_articles to profile editorial focus by writer.
- Surface related Vogue content in a third-party beauty app by querying search_articles with product or ingredient names and linking out via the path field.
- Compile keyword co-occurrence data using the keywords array returned by get_article across a corpus of beauty articles.
- Monitor article updates by comparing modified_at timestamps from get_article against previously stored values.
| 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.