depop Pricing Inspiration API

ML-powered price recommendations and pricing guidance

OpenAPI Specification

depop-pricing-inspiration-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Seller API status Pricing Inspiration API
  version: 1.0.0
  description: 'Externally facing API to allow enterprise partners to automate listing on Depop.


    ## OAuth 2.0 Scopes


    This API uses OAuth 2.0 scopes to control access to different resources. Each endpoint requires specific scopes to access:


    - **`products_read`** - Required to read product information and listings

    - **`products_write`** - Required to create, update, or delete products

    - **`orders_read`** - Required to read order information and order history

    - **`orders_write`** - Required to mark orders as shipped or process refunds

    - **`offers_read`** - Required to read offer pricing information (auto send offer price, auto negotiate offer price)

    - **`offers_write`** - Required to set or modify offer prices (auto send offer price, auto negotiate offer price)

    - **`shop_read`** - Required to read shop information including seller addresses and available shipping providers


    API key tokens have access to all scopes, while OAuth tokens are limited to the scopes specified in the token.


    If you attempt to access an endpoint without the required scope, you will receive a `403 Forbidden` response with the error code `insufficient_scope`.'
servers:
- url: https://partnerapi-staging.depop.com
- url: https://partnerapi.depop.com
security:
- BearerAuth: []
tags:
- name: Pricing Inspiration
  description: ML-powered price recommendations and pricing guidance
paths:
  /api/v1/pricing/inspiration/:
    post:
      tags:
      - Pricing Inspiration
      summary: Get pricing inspiration when given product listing details
      description: 'This endpoint returns a price prediction range and a list of similar sold items for a product listing.

        The price prediction is the core of the response. The list of similar sold items is supplementary and best-effort: if the similar sold items lookup is unavailable (for example, a timeout), the endpoint still returns the price prediction with an empty `similar_sold_items` array rather than failing. Clients should therefore not rely on `similar_sold_items` always being populated.

        This endpoint does not require OAuth Scopes and is only valid for specific countries (US and GB).'
      operationId: getPricingInspiration
      requestBody:
        description: Pricing inspiration request body
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PricingInspirationRequest'
        required: true
      responses:
        '200':
          description: OK
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PricingInspirationResponse'
              example:
                price_prediction:
                  lower_bound: '17.00'
                  balanced: '19.00'
                  prediction: '19.00'
                  upper_bound: '22.00'
                similar_sold_items:
                - brand_name: Nike
                  condition: used_excellent
                  picture:
                    height: 1280
                    url: https://media-photos-staging.depop.com/b0/18220/5612584_b6795bc34778465293e45647518906d6/P0.jpg
                    width: 1280
                  sold_price_amount: '50.00'
                  sold_price_currency: GBP
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: Not Found - no price prediction is available for the given attributes (for example, an uncommon brand and product type combination).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                id: 6eaec55a-c500-4c76-81b6-fda44828df1e
                errors:
                - code: price_prediction_not_available
                  message: No price prediction is available for the given attributes.
        '422':
          description: Unprocessable Entity - validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                id: a210923f-c1f3-4d84-a2bd-7f18c68553e2
                errors:
                - code: unsupported_country
                  message: 'Country ''AU'' is not supported. Supported countries: GB, US'
        '500':
          description: Internal Server Error
          headers: {}
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    PricePrediction:
      title: PricePrediction
      type: object
      description: The price prediction range with the predicted balanced sale price and a higher and lower bound price.
      properties:
        balanced:
          type: string
          description: The balanced price for the product.
          example: '19.00'
        prediction:
          type: string
          description: The predicted price for the product. Deprecated - use 'balanced' instead.
          example: '19.00'
          deprecated: true
        upper_bound:
          type: string
          description: The upper bound of the predicted price range.
          example: '22.00'
        lower_bound:
          type: string
          description: The lower bound of the predicted price range.
          example: '17.00'
    ErrorItem:
      type: object
      required:
      - code
      - message
      properties:
        code:
          type: string
          example: missing_attribute
          description: The error code.
        message:
          type: string
          example: Missing mandatory field
          description: The error message.
    PricingInspirationResponse:
      title: PricingInspirationResponse
      type: object
      required:
      - price_prediction
      - similar_sold_items
      properties:
        price_prediction:
          $ref: '#/components/schemas/PricePrediction'
        similar_sold_items:
          type: array
          description: A best-effort list of similar sold items. May be empty if no comparable items are found, or if the similar sold items lookup is temporarily unavailable. The price prediction is still returned in either case.
          items:
            $ref: '#/components/schemas/SimilarSoldItem'
          example:
          - brand_name: Nike
            condition: used_excellent
            picture:
              height: 1280
              url: https://media-photos-staging.depop.com/b0/18220/5612584_b6795bc34778465293e45647518906d6/P0.jpg
              width: 1280
            sold_price_amount: '50.00'
            sold_price_currency: GBP
    SimilarSoldItem:
      title: SimilarSoldItem
      type: object
      description: A list of sold items that are similar to the product request.
      properties:
        picture:
          $ref: '#/components/schemas/Picture'
        sold_price_amount:
          type: string
          description: The sale price of the item.
          example: '50.00'
        sold_price_currency:
          type: string
          description: The currency of the sale price.
          example: GBP
        condition:
          type: string
          anyOf:
          - type: string
            enum:
            - brand_new
            - used_like_new
            - used_excellent
            - used_good
            - used_fair
          example: brand_new
          description: The condition of the sold item.
        brand_name:
          type: string
          description: The canonical brand name of the product.
          example: Nike
    ErrorResponse:
      type: object
      properties:
        id:
          type: string
          example: a210923f-c1f3-4d84-a2bd-7f18c68553e2
          description: A unique identifier for the error response.
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorItem'
      example:
        id: a210923f-c1f3-4d84-a2bd-7f18c68553e2
        errors:
        - code: product_not_found
          message: 'Product (sku: womens-tshirt-1, id: 123) not found'
    Picture:
      type: object
      required:
      - url
      - height
      - width
      properties:
        url:
          type: string
          description: URL of the picture.
          example: https://media-photos-staging.depop.com/b0/18220/5612584_b6795bc34778465293e45647518906d6/P0.jpg
        height:
          type: number
          example: 1280
        width:
          type: number
          example: 1280
    PricingInspirationRequest:
      title: PricingInspirationRequest
      required:
      - description
      - country
      - currency
      - product_type
      - department
      - condition
      - brand_name
      type: object
      properties:
        description:
          type: string
          description: A detailed description of the product. The more detail the better the prediction
          example: A sporty nike t-shirt with abstract patterns
        country:
          type: string
          description: The country the product is listed in.
          example: GB
        currency:
          type: string
          description: The currency code for the listing.
          example: GBP
        product_type:
          type: string
          description: The type of product. Find out more in the taxonomy section of the API docs.
          example: t-shirts
        department:
          type: string
          description: The product department. Find out more in the taxonomy section of the API docs.
          example: menswear
        condition:
          type: string
          description: The condition of the product. Find out more in the taxonomy section of the API docs.
          example: used_like_new
        brand_name:
          type: string
          description: The canonical brand name of the product.
          example: Nike
        size_set_id:
          type: integer
          description: The size set ID for the given Department and Product Type.
          example: 52
        size_id:
          type: integer
          description: The size identifier.
          example: 4
        colour:
          type: array
          maxItems: 2
          items:
            type: string
            anyOf:
            - type: string
              enum:
              - black
              - grey
              - white
              - brown
              - tan
              - cream
              - yellow
              - red
              - burgundy
              - orange
              - pink
              - purple
              - blue
              - navy
              - green
              - khaki
              - multi
              - silver
              - gold
          description: List of colours for the product.
          example:
          - black
          - white
        style:
          type: array
          items:
            type: string
            anyOf:
            - type: string
              enum:
              - streetwear
              - sportswear
              - loungewear
              - goth
              - retro
              - boho
              - western
              - indie
              - skater
              - rave
              - costume
              - cosplay
              - grunge
              - emo
              - minimalist
              - preppy
              - avant_garde
              - punk
              - glam
              - regency
              - casual
              - techwear
              - futuristic
              - cottage
              - fairy
              - kidcore
              - y2_k
              - biker
              - gorpcore
              - twee
              - coquette
              - whimsygoth
          description: List of styles for the product.
          example:
          - casual
          - sportswear
        source:
          type: array
          maxItems: 2
          items:
            type: string
            anyOf:
            - type: string
              enum:
              - vintage
              - preloved
              - reworked
              - custom
              - handmade
              - deadstock
              - designer
              - repaired
          example:
          - vintage
  responses:
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            id: a210923f-c1f3-4d84-a2bd-7f18c68553e2
            errors:
            - code: unauthorized
              message: invalid api key
    BadRequest:
      description: Bad request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            id: a210923f-c1f3-4d84-a2bd-7f18c68553e2
            errors:
            - code: bad-request
              message: invalid request
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key