Patagonia APIpatagonia.com ↗
Access Patagonia's product catalog, pricing, variants, customer reviews, store locations, and Worn Wear used gear via 6 structured API endpoints.
What is the Patagonia API?
The Patagonia API gives developers access to 6 endpoints covering the full Patagonia product catalog, customer reviews, retail store locations, and Worn Wear used gear listings. Use search_products to run full-text queries across the catalog, get_product_details to retrieve per-color pricing, size variants, materials, and specs for any style number, or find_stores to locate nearby Patagonia stores and authorized dealers by latitude and longitude.
curl -X GET 'https://api.parse.bot/scraper/21a6a97f-f1d8-47f8-a022-981ba58f1cd1/search_products?sz=12&query=jacket&start=0' \ -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 patagonia-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.
from parse_apis.patagonia_api import Patagonia, Product, ProductDetail, Review, Store, WornWearProduct
client = Patagonia()
# Search the catalog for jackets
for product in client.products.search(query="jacket", sz=12, limit=5):
print(product.pid, product.name, product.price, product.category)
# Get full details for a specific product
detail = client.products.get(pid="84213").details()
print(detail.name, detail.fit, detail.materials)
for variant in detail.variants:
print(variant.display_name, variant.swatchable)
# Browse reviews for a product
product_inst = client.product(pid="84213")
for review in product_inst.reviews.list(per_page=5, limit=10):
print(review.score, review.title, review.user.display_name, review.created_at)
# Browse a category
for item in client.products.by_category(category_id="mens-jackets-vests", limit=5):
print(item.pid, item.name, item.brand)
# Find nearby stores
for store in client.stores.find(lat=40.7128, lng=-74.006, limit=3):
print(store.name, store.address, store.city, store.state, store.distance)
# Browse Worn Wear used products
for used in client.wornwearproducts.list(limit=3):
print(used.title, used.handle, used.variants[0].price, used.variants[0].compare_at_price)
Full-text search across the Patagonia product catalog. Returns paginated product listings with name, price, brand, and category. Pagination is offset-based: advance by incrementing start by sz each page. The response includes has_next to signal more results and next_start for the next offset value.
| Param | Type | Description |
|---|---|---|
| sz | integer | Number of results per page. |
| queryrequired | string | Search keyword (e.g. 'backpack', 'jacket', 'fleece'). |
| start | integer | Offset for pagination (increments by sz value each page). |
{
"type": "object",
"fields": {
"total": "integer count of products returned in this page",
"has_next": "boolean indicating if more results are available",
"products": "array of product objects with pid, name, price, brand, category, variant",
"next_start": "integer offset for next page, or null if no more results"
},
"sample": {
"data": {
"total": 36,
"has_next": true,
"products": [
{
"pid": "49266",
"name": "Black Hole® Mini MLC® 30L",
"brand": "Patagonia",
"price": 199,
"variant": null,
"category": "Bags"
}
],
"next_start": 36
},
"status": "success"
}
}About the Patagonia API
Product Search and Category Browsing
The search_products endpoint accepts a query string and returns paginated product listings — each with a pid, name, price, brand, category, and variant. Pagination is offset-based: pass start and sz to step through results, and use the has_next boolean and next_start field to detect and fetch subsequent pages. The get_category_products endpoint works identically but scopes results to a category slug such as mens-jackets-vests or womens-fleece, matching the URL slugs visible on patagonia.com.
Product Details and Reviews
get_product_details takes a pid (style number from search or category results) and returns a detailed product object: per-color price objects with both sales and list prices, images keyed by color code, a variants array covering color and size attributes, a specs array of title/content pairs, and materials and fit strings. get_product_reviews fetches Yotpo-sourced reviews for the same pid, returning each review's score, content, title, createdAt, and user info, plus a bottomline object with averageScore, totalReview, and starDistribution.
Store Locator and Worn Wear
find_stores accepts a lat/lng coordinate pair and an optional dist radius in miles, returning an array of store markers with name, address, city, state, phone, distance, today_hours, and status_label indicating open or closed status. get_worn_wear_products returns up to 50 current listings from Patagonia's Worn Wear used gear program, including condition tags on each variant, price, and compare_at_price for calculating savings relative to original retail.
The Patagonia API is a managed, monitored endpoint for patagonia.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when patagonia.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 patagonia.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 gear comparison tool using per-color pricing and size variants from get_product_details
- Track price changes across the Patagonia catalog by polling search_products or get_category_products
- Aggregate customer sentiment by pulling averageScore and starDistribution from get_product_reviews
- Display nearby Patagonia stores on a map using lat/lng and today_hours from find_stores
- Surface discounted used gear by comparing price and compare_at_price in get_worn_wear_products results
- Populate a product feed filtered by category using get_category_products with a specific category_id slug
- Monitor in-stock size and color availability by parsing the variants array from get_product_details
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 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.