Phia APIphia.com ↗
Access Phia's fashion marketplace via API: search products, get price intelligence, browse brands, retrieve editorial collections, and find visually similar items.
What is the Phia API?
The Phia API exposes 11 endpoints covering fashion product search, price intelligence, brand browsing, and editorial collections from Phia's multi-retailer marketplace. search_products returns paginated listings with price, retailer, sale status, and image URL across hundreds of brands, while get_price_assessment delivers resale ratio, deal classification, and average resale value for any product — giving developers the data needed to build price-aware fashion tools.
curl -X GET 'https://api.parse.bot/scraper/424f64a4-2dd9-4178-817a-f0134a431c5e/search_products?limit=5&query=gucci+bag&offset=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 phia-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.
"""
Phia Fashion API - SDK Usage Example
Search fashion products, browse brands, explore editorials, and get price intelligence.
"""
from parse_apis.phia_fashion_api import Phia, Gender, ProductNotFound
phia = Phia(api_key="YOUR_API_KEY")
# Search for products across 40,000+ fashion sites
for product in phia.products.search(query="summer dress", limit=5):
print(product.name, product.price_usd, product.source_display_name, product.on_sale)
# Get autocomplete suggestions for search-as-you-type
for suggestion in phia.suggestions.search(query="gui", limit=5):
print(suggestion.keyword, suggestion.direct_type)
# Browse trending searches curated by Phia
for trend in phia.trends.list(limit=3):
print(trend.query, trend.category, trend.is_trending, trend.rank)
# Explore editorials and drill into their products
editorial = phia.editorials.list(limit=1).first()
if editorial:
print(editorial.title, editorial.gender, editorial.author.name)
for item in editorial.products.list(limit=3):
print(item.item_name, item.brand, item.parsed_price)
# Get price assessment for a product
assessment = phia.priceassessments.assess(
product_url="https://www.gucci.com/us/en/pr/women/handbags/mini-bags-for-women/gucci-ophidia-gg-mini-bag-p-517350FACC79DI",
name="Gucci Ophidia GG Mini Bag",
brand="Gucci",
price=890.0
)
print(assessment.deal_type, assessment.resale_ratio, assessment.average_resale_value)
# Look up price intelligence by retailer URL with error handling
try:
insight = phia.insights.lookup(product_url="https://www.nordstrom.com/s/gucci-ophidia-gg-supreme-canvas-shoulder-bag/5634608")
print(insight.deal_type, insight.scraped_brand, insight.average_resale_value)
except ProductNotFound as exc:
print(f"Product not found: {exc}")
print("exercised: products.search / suggestions.search / trends.list / editorials.list / editorial.products.list / priceassessments.assess / insights.lookup")
Full-text search over fashion products across 40,000+ sites. Returns paginated results ordered by relevance with product name, price, retailer, image, and sale status. Pagination via offset; each page returns up to `limit` items. The `hasMore` flag indicates additional pages exist.
| Param | Type | Description |
|---|---|---|
| limit | integer | Max results per page |
| queryrequired | string | Search keyword (e.g., 'gucci bag', 'summer dress') |
| offset | integer | Pagination offset |
{
"type": "object",
"fields": {
"offset": "integer current offset",
"hasMore": "boolean indicating more results available",
"results": "array of product objects",
"searchId": "string unique search session identifier",
"numProducts": "integer total matching products"
},
"sample": {
"data": {
"offset": 5,
"hasMore": true,
"results": [
{
"id": "ENTITY_TYPE_PRODUCT-bb05916e5e1f8fdd",
"name": "Gucci Lunetta Gg Canvas Shoulder Bag",
"imgUrl": "https://encrypted-tbn2.gstatic.com/shopping?q=tbn:ANd9GcRjS8dIM7AD6mFjwCg3TAcs",
"onSale": false,
"priceUsd": "1280",
"productUrl": "https://www.google.com/search?q=gucci+bag",
"primaryBrandName": "",
"sourceDisplayName": "Gucci"
}
],
"searchId": "e4e3bb94-9f86-461a-9af8-e46a254b29de",
"numProducts": 683
},
"status": "success"
}
}About the Phia API
Product Search and Discovery
The search_products endpoint accepts a query string (e.g., 'gucci bag', 'summer dress') plus optional limit and offset parameters for pagination. Each result object in the results array includes id, name, priceUsd, imgUrl, productUrl, sourceDisplayName, and onSale — enough to render a shoppable product card with retailer attribution. The numProducts and hasMore fields support building paginated result views. For type-ahead interfaces, get_autocomplete_suggestions takes a partial query and returns keyword, type, and directType fields to power real-time search inputs. get_popular_searches returns ranked trending terms with rank, query, category, isFemale, and isTrending — no parameters required.
Price Intelligence
get_price_assessment accepts a product name, brand, price, and product_url, and returns a dealType classification (e.g., 'GREAT_DEAL', 'GOOD_FIND'), a resaleRatio percentage, averageResaleValue, firsthandCount, secondhandCount, and price thresholds for both market segments. lookup_product_by_url accepts any external retailer URL and returns scrapedName, scrapedBrand, scrapedPrice, dealType, resaleRatio, and averageResaleValue — useful when you have a product URL but not structured metadata. Together these endpoints provide both first-hand and second-hand market context for a given item.
Brands, Editorials, and Visual Similarity
get_explore_brands returns a paginated list of brands with id, displayName, logoUrl, and websiteUrl. Once you have a brand name, get_brand_products accepts that name as brand_id and returns paginated product listings including primaryBrandName and sourceDisplayName. For content-driven surfaces, get_editorials returns curated collections with title, description, gender, collectionId, and nested author objects (including handle and imgUrl). Products within a collection are fetched via get_editorial_products using the collection_id from the prior call, returning brand, itemName, parsedPrice, imageLink, and linkToProduct.
Visual Similarity
get_visually_similar_products accepts the same four inputs as get_price_assessment — name, brand, price, and product_url — and returns two arrays: top_products and similar_style_products. This is useful for building "you might also like" features or cross-retailer style matching without managing your own embedding infrastructure.
The Phia API is a managed, monitored endpoint for phia.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when phia.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 phia.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 price tracker that monitors
dealTypeandresaleRatiochanges for a watchlisted item usingget_price_assessment. - Power a fashion search bar with real-time type-ahead using
get_autocomplete_suggestionsandkeywordresponse fields. - Aggregate trending fashion terms by category and gender from
get_popular_searchesfor a trend-reporting dashboard. - Render editorial lookbooks by chaining
get_editorialsandget_editorial_productsto display curated collections with author attribution. - Build a brand directory with logo, website, and product catalog by combining
get_explore_brandsandget_brand_products. - Add a 'similar items' widget to a product page using
get_visually_similar_productswithtop_productsandsimilar_style_products. - Evaluate any retailer product URL for resale potential by passing it to
lookup_product_by_urland surfacingaverageResaleValueanddealType.
| 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.
Does Phia offer an official developer API?+
What does `get_price_assessment` return beyond just a price comparison?+
get_price_assessment returns a dealType label, a resaleRatio indicating what percentage of retail value is retained on resale, averageResaleValue, separate counts for firsthandCount and secondhandCount listings, priceDifference from the market average, and distinct price thresholds for first-hand and second-hand markets. You pass in name, brand, price, and product_url to get all of these back.Does the API return user reviews or ratings for products?+
How does pagination work across the endpoints that support it?+
search_products, get_brand_products, and get_explore_brands all accept limit and offset integer parameters. search_products also returns numProducts (total count) and hasMore (boolean) so you can determine whether additional pages exist before issuing the next request. get_brand_products similarly returns hasMore and numProducts.Does the API expose inventory levels or size availability for products?+
onSale, priceUsd, productUrl, and sourceDisplayName, but granular size availability or stock levels are not part of the response schema. You can fork this API on Parse and revise it to add an endpoint that retrieves size or inventory details from individual product pages.