Discover/Permanent Style API
live

Permanent Style APIpermanentstyle.com ↗

Search Permanent Style articles by topic, category, and phrase. Returns titles, URLs, excerpts, dates, and thumbnails via one structured endpoint.

Endpoint health
verified 2h ago
search_articles
1/1 passing latest checkself-healing
Endpoints
1
Updated
2h ago

What is the Permanent Style API?

The Permanent Style API exposes one endpoint, search_articles, that queries the full archive of permanentstyle.com and returns up to seven fields per matching article — including title, canonical URL, excerpt, and publication date. A single call delivers paginated summaries alongside aggregate counts (total_results, total_pages), making it straightforward to traverse the site's coverage of tailoring, fabrics, makers, and menswear topics programmatically.

This call costs1 credit / call— charged only on success
Try it
1-based result page number.
Result ordering.
Topic or phrase to search for, e.g. a fabric, garment or maker name. Wrap in double quotes for an exact-phrase match.
Restrict results to one site article category. Omitted = all categories.
Results per page; the site accepts only 25, 50 or 100 and other values are rejected.
→ api.parse.bot/scraper/1a957e94-7492-43a5-8159-26b59f38dd22/<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/1a957e94-7492-43a5-8159-26b59f38dd22/search_articles?sort=best_match&query=tweed' \
  -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 permanentstyle-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: Permanent Style article search — bounded, re-runnable."""
from parse_apis.permanentstyle_com_api import PermanentStyle, SortOrder, Category, InputFormatInvalid

client = PermanentStyle()

# Search for articles about tweed, ordered by popularity, capped at 5.
for article in client.articles.search(query="tweed", sort=SortOrder.POPULAR, limit=5):
    print(article.title, "|", article.published)

# Drill into a specific category and grab the first match.
hit = client.articles.search(
    query="bespoke shoes",
    category=Category.SHOES,
    sort=SortOrder.LATEST,
    limit=1,
).first()

if hit is not None:
    print(hit.title)
    print(hit.url)
    print("Comments-only match:", hit.match_only_in_comments)
    if hit.image_url is not None:
        print("Thumbnail:", hit.image_url)

# Demonstrate typed error handling for an invalid page_size value.
try:
    client.articles.search(query="linen", page_size=30, limit=1).first()
except InputFormatInvalid as e:
    print("Caught expected error:", e.message)

print("exercised: articles.search")
All endpoints · 1 totalmissing one? ·

Full-text search of Permanent Style articles for a topic or phrase. Returns one page of matching article summaries (title, URL, publication date, excerpt, thumbnail) together with the site's total match count and page count. Each call is one round trip. Pagination is caller-controlled via page (1-based, defaults to the first page) and per_page (the site accepts only 25, 50 or 100; defaults to 25); has_more is true while further pages exist, and a page beyond the last returns an empty articles array with the totals intact. Results can be ordered by relevance, popularity or date and restricted to one of the site's article categories. Matches found only in an article's reader comments (not its body) are flagged with match_only_in_comments. Wrapping the topic in double quotes searches for the exact phrase. A topic with no matches returns total_results 0 and an empty articles array.

Input
ParamTypeDescription
pageinteger1-based result page number.
sortstringResult ordering.
queryrequiredstringTopic or phrase to search for, e.g. a fabric, garment or maker name. Wrap in double quotes for an exact-phrase match.
categorystringRestrict results to one site article category. Omitted = all categories.
per_pageintegerResults per page; the site accepts only 25, 50 or 100 and other values are rejected.
Response
{
  "type": "object",
  "fields": {
    "page": "integer page number returned",
    "query": "the search phrase echoed back",
    "articles": "array of article summaries on this page",
    "has_more": "boolean, true when page < total_pages",
    "per_page": "integer page size used",
    "total_pages": "integer number of pages at this per_page",
    "total_results": "integer total matching articles reported by the site across all pages",
    "articles[].url": "canonical article URL",
    "articles[].title": "article title",
    "articles[].excerpt": "opening text of the article, truncated by the site",
    "articles[].post_id": "site post identifier (string)",
    "articles[].image_url": "thumbnail image URL, null when the site provides none",
    "articles[].published": "publication date as shown on the site, 'Mon D YYYY'",
    "articles[].match_only_in_comments": "boolean, true when the phrase was found only in the article's reader comments"
  },
  "sample": {
    "data": {
      "page": 1,
      "query": "tweed",
      "articles": [
        {
          "url": "https://www.permanentstyle.com/2023/12/the-guide-to-tweed-bunches.html",
          "title": "The Guide to Tweed: Bunches",
          "excerpt": "In our voluminous Guide to Cloth series, we’ve already done an article on tweed. But that was about the history, the style and a little about the types. There was no mention of bunches.",
          "post_id": "92079",
          "image_url": "https://www.permanentstyle.com/wp-content/uploads/2021/12/Molloy-and-Sons-mill-500x333.jpg",
          "published": "Dec 6 2023",
          "match_only_in_comments": false
        }
      ],
      "has_more": true,
      "per_page": 25,
      "total_pages": 42,
      "total_results": 1031
    },
    "status": "success"
  }
}

About the Permanent Style API

What the API Returns

The search_articles endpoint accepts a query string and returns an array of article summaries from the Permanent Style archive. Each entry in the articles array includes the article title, its url, and an excerpt — the opening text as truncated by the site. Alongside those per-article fields, every response carries total_results (the site's count of matching articles across all pages) and total_pages (derived from that count and the chosen page size).

Filtering and Pagination

Results can be scoped with the category parameter to restrict output to a single site category, and ordered with the sort parameter. Page size is controlled by per_page, which accepts only three values — 25, 50, or 100 — and will reject anything else. Pagination is caller-driven: increment the page parameter (1-based) and check has_more to know whether a subsequent call is warranted. The response echoes back both query and per_page so callers can confirm the active state without tracking it externally.

Scope and Coverage

Permanent Style is a long-running menswear journal covering bespoke tailoring, fabrics, shoemaking, brands, and related topics. The search index reflects that editorial focus — a query like "cashmere" or "Neapolitan tailoring" will surface relevant editorial articles, while queries outside that domain will return few or no results. Article freshness depends on how recently the source site has been indexed; the API does not expose a publication timestamp field beyond what the site itself surfaces in search results.

Reliability & maintenanceVerified

The Permanent Style API is a managed, monitored endpoint for permanentstyle.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when permanentstyle.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 permanentstyle.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
2h ago
Latest check
1/1 endpoint 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
  • Aggregate all Permanent Style articles mentioning a specific fabric (e.g. 'hopsack') to build a reference guide
  • Monitor new articles on a maker or brand by querying their name and comparing total_results across calls
  • Build a category-specific reading list by combining the category filter with paginated retrieval
  • Extract article URLs and titles to populate a curated menswear link feed or newsletter digest
  • Research editorial coverage depth for a topic by checking total_results for multiple related query terms
  • Feed article excerpts into a downstream summarization or tagging pipeline using the excerpt field
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 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.

Frequently asked questions
Does Permanent Style offer an official developer API?+
No. Permanent Style (permanentstyle.com) does not publish an official developer API or data access program. This Parse API is the structured way to query the site's article archive.
What does search_articles return beyond the article title and URL?+
Each article object includes the title, url, and excerpt (opening text truncated by the site). At the response level you also get total_results, total_pages, has_more, the echoed query, and the active per_page — enough to paginate through a full result set without extra state.
Are there restrictions on the per_page parameter?+
Yes. The per_page parameter accepts only three values: 25, 50, or 100. Any other integer is rejected. If you want finer-grained pagination, use the page parameter to step through results at one of those fixed page sizes.
Does the API return full article body text?+
No — the excerpt field contains only the opening text of each article as truncated by the site. Full article body content is not exposed. The API covers article metadata and excerpts discoverable through search. You can fork it on Parse and revise to add a separate endpoint that fetches and returns full article body text for a given URL.
Can I retrieve a list of all available site categories to use with the category filter?+
Not currently. The API does not include a categories-listing endpoint; you need to know a valid category slug before passing it to the category parameter. You can fork this API on Parse and revise it to add a categories endpoint that returns the available values.
Page content last updated . Spec covers 1 endpoint from permanentstyle.com.
Related APIs in News MediaSee all →
putthison.com API
Search and retrieve articles on men's style and fashion from Put This On, including the ability to browse content by specific authors or find articles on particular topics. Quickly access detailed article information and explore all contributions from your favorite fashion writers on the platform.
vogue.com API
vogue.com API
byrdie.com API
byrdie.com API
stories.com API
Search & Other Stories' catalog to find products by name or category, and retrieve detailed information including pricing, images, available sizes, colors, and materials for each item. Get comprehensive product details to compare styles, check inventory across variations, and make informed shopping decisions.
burdastyle.com API
Browse and search thousands of sewing patterns, access digital magazines and subscription details, and discover the latest blog posts from BurdaStyle all in one place. Filter patterns by category, view detailed instructions and materials for each design, and stay updated with curated content from the sewing community.
stylishop.com API
Browse and search stylishop.com's complete fashion catalog, including products, categories, brands, reviews, and trending data to discover new arrivals and sale items. Get product details, size guides, autocomplete suggestions, and trending search insights to enhance your shopping experience.
newadvent.org API
Access data from newadvent.org.
cos.com API
Search and browse COS fashion products by name or category to instantly access pricing, product images, and direct links to items. Retrieve detailed information about specific products including descriptions, availability, and pricing to compare styles and make informed shopping decisions.