---
title: "Analyse product pricing across marketplaces"
method: POST
path: "/v1/pricing/analyze"
tags: ["Pricing"]
---

# Analyse product pricing across marketplaces

`POST /v1/pricing/analyze`

## Request

- Base URL: `https://api.shopfront.app`
- URL: `https://api.shopfront.app/v1/pricing/analyze`
- Auth: HTTP bearer

Get AI-powered pricing recommendations for a product based on real marketplace data.

**Input options:**
- **Image only** (5-15s): AI identifies the product and searches for comparable listings
- **Product name only** (2-4s): Searches marketplaces by text (faster, lower confidence)
- **Both** (5-15s): Best accuracy

Returns three price points (recommended, quick sale, premium), confidence scoring,
comparable listings with relevance scores, and marketplace breakdown.

## Request body

- object: Provide at least one of `image` or `productName`.
  - `image` union: Product image for visual identification
    - UrlImage
      - `type` 'url', required
      - `url` string, uri, required
    - Base64Image
      - `type` 'base64', required
      - `data` string, required
      - `filename` string
  - `productName` string: Product name or description
  - `options` object
    - `targetCurrency` string: Currency for pricing results (ISO 4217 three-letter code)
    - `includeCompetitors` boolean: Include competitor listings in response

## Response `200`

Pricing analysis complete

- PricingAnalysisResult
  - `product` PricingProduct
    - `name` string: AI-identified product name
    - `brand` string, nullable
    - `category` string, nullable: Product type (e.g. "sneakers", "t-shirt")
    - `confidence` number: Product identification confidence
  - `pricing` PricingRecommendations
    - `recommended` integer: Recommended asking price (~95% of weighted median)
    - `quickSale` integer: Quick-sale asking price (~95% of Q1)
    - `premium` integer: Premium asking price (~95% of Q3)
    - `marketAverage` integer: Mean price across valid matches
    - `confidence` number: Pricing confidence (0.1 = low, 0.95 = high)
    - `insights` string[]: Human-readable pricing insights
  - `priceRange` PriceRange
    - `min` number
    - `max` number
    - `currency` string: ISO 4217 currency code
  - `statistics` PricingStatistics
    - `median` number
    - `mean` number
    - `trimmedMean` number
    - `standardDeviation` number
    - `iqr` number
    - `validSampleSize` integer: Number of matches after outlier removal
    - `outlierCount` integer
    - `priceRange` object
      - `min` number
      - `max` number
      - `q1` number: 25th percentile
      - `q3` number: 75th percentile
  - `competitors` CompetitorListing[]
    - `title` string
    - `price` number
    - `currency` string
    - `originalPrice` number, nullable: Price before currency conversion
    - `originalCurrency` string, nullable
    - `source` 'ebay' | 'grailed'
    - `link` string, uri
    - `thumbnail` string, uri, nullable
    - `condition` string, nullable
    - `relevance` integer, nullable: AI relevance score — how similar to the target product
  - `marketplaceBreakdown` MarketplaceBreakdown
  - `processingTime` integer: Total processing time in milliseconds

## Other responses

- `400`: Invalid request
- `401`: Unauthorized - missing or invalid token
- `402`: Monthly usage limit reached or billing blocked
- `429`: Rate limit exceeded

---

[API](https://skmtc.dev/shopfront/apis/shopfront-public-api.md) - [All operations](https://skmtc.dev/shopfront/apis/shopfront-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/shopfront/apis/shopfront-public-api/revisions/4dbfb90550d4?raw)
