---
title: "Get product details by SKU"
method: GET
path: "/api/v1/products/by-sku/{sku}/"
tags: ["Products - By SKU"]
---

# Get product details by SKU

`GET /api/v1/products/by-sku/{sku}/`

## Request

- Base URL: `https://partnerapi-staging.depop.com`
- URL: `https://partnerapi-staging.depop.com/api/v1/products/by-sku/{sku}/`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/depop/apis/seller-api/docs/api/v1/products/by-sku/:sku/get.ts> (a function with typed inputs; its response is checked against the schema)

This endpoint allows you to get the details of a product by its SKU.
**Required OAuth Scopes:** - `products_read` - Required to access product information - `offers_read` - Optional. Required to include offer pricing information (`auto_send_offer_price`, `auto_negotiate_offer_price`) in the response. If this scope is not provided, these fields will be omitted from the response.

The SKU is the unique identifier for the product and is used in other endpoints to reference this particular product.
The SKU will be used in the webhooks.
Note that the SKU will _not_ be reusable.

## Path parameters

- `sku` string, required

## Response `200`

A single product

- Product
  - `sku` string, nullable: SKU of the product. This field is optional and will be null if no SKU was assigned to the product.
  - `product_id` number, required: The id of the product.
  - `slug` string, required: The URL-friendly slug of the product. Can be used to construct the product URL as `https://www.depop.com/products/{slug}/`.
  - `status` 'STATUS_ONSALE' | 'STATUS_PURCHASED' | 'STATUS_MARKED_AS_SOLD' | 'STATUS_DELETED' | 'STATUS_DELETED_ONSALE' | 'STATUS_DELETED_PURCHASED' | 'STATUS_DELETED_MARKED_AS_SOLD' | 'STATUS_PRODUCT_BANNED_ONSALE' | 'STATUS_USER_BANNED_ONSALE' | 'STATUS_PRODUCT_BANNED_PURCHASED' | 'STATUS_USER_BANNED_PURCHASED', required: The status of the product.
  - `address` Address, required
    - `country_code` string, required
    - `state` string: The state/county of the product's address.
  - `description` string, required: A good description should contain key attribute information (brand, category, color, size, age etc), clarifying information about flaws, condition, fit, size and measurements. Commonly they end with hash tags (for example, \#summer). Constraints: * Limited to 1000 characters * Email addresses are not allowed * Can only have up to 5 hashtags (for example, \#summer).
  - `price_currency` string, required: The currency code of the item's price.
  - `price_amount` string, required: The price of the item. Must be at least $1.00 or £1.00. Up to 2 decimal places.
  - `current_price` string: The current effective price of the item, reflecting any active discount. Equal to price_amount when no discount is applied.
  - `discount_price` string: The discounted price of the item. Only present when the seller has an active discount on the product.
  - `auto_send_offer_price` string: The price to automatically send to buyers who liked or have bagged the product. There's a fixed 1h delay before an offer is sent. If not set, the product will not automatically send offers. Must be less at least 5% off the price_amount. Up to 2 decimal places. **Note:** Requires `offers_read` OAuth scope to include this field in the response. If scope is not provided, this field will be omitted.
  - `auto_negotiate_offer_price` string: The price to automatically respond with when a buyer sends an offer in this product: * If the buyer offer is higher or equal to this value, then the offer will be automatically accepted. * If the buyer offer is lower than this value, then the offer will be automatically countered with this price. If the buyer counters again, the same value will be used to counter the buyer's offer. If not set, the offers will not be automatically responded to. Must be less at least 5% off the price_amount. Up to 2 decimal places. **Note:** Requires `offers_read` OAuth scope to include this field in the response. If scope is not provided, this field will be omitted.
  - `international_shipping_cost` string: The cost of shipping the product internationally. Only set this if the product can be shipped internationally. Same currency as price_currency.
  - `national_shipping_cost` string: The cost of shipping the product nationally. Same currency as price_currency. If set to 0, the product has free shipping for buyers. **Important:** Either `national_shipping_cost` OR `depop_shipping` must be provided. If using Depop managed shipping, use `depop_shipping` instead and omit this field.
  - `depop_shipping` DepopShippingDetails
    - `address_id` integer, required: The ID of the seller address to ship from. This must be an address ID obtained from the `/api/v1/shop/seller-addresses/` endpoint. The address determines which shipping providers and parcel sizes are available.
    - `shipping_provider_id` string, required: The identifier for the shipping provider. This must be a provider ID returned from the `/api/v1/shop/seller-addresses/{address_id}/shipping-providers/` endpoint for the specified address. Common providers include: USPS, MY_HERMES (EVRI), SENDLE.
    - `parcel_size_id` string, required: The identifier for the parcel size. This must be a parcel size ID available for the specified shipping provider, obtained from the `/api/v1/shop/seller-addresses/{address_id}/shipping-providers/` endpoint. Common sizes include: SMALL, MEDIUM, LARGE, etc.
    - `payer` 'buyer' | 'seller', required: Who pays for the shipping cost. - `buyer`: The buyer pays for shipping (shipping cost is added to the total price) - `seller`: The seller pays for shipping (free shipping for buyers)
  - `quantity` number, required: The quantity of the product available for sale. Must be at least 1.
  - `pictures` Picture[], required
    - `url` string, required: URL of the picture.
    - `height` number, required
    - `width` number, required
  - `department` string, required: Top level category of the product. Currently we support: womenswear, menswear, kidswear and everything-else. These rarely change. For an up to date list, please make use of our taxonomy endpoint. Currently, in https://api.depop.com/api/v3/attributes/ under the key `department`.
  - `product_type` string, required: The more specific category of the product. Note that there's an intermediate level between department and product type called "group". We don't need to receive this when an item is being listed but it's used in the apps/website to organize the product types. For example, in "menswear >> swim-beach-wear >> swimsuit-one-piece", we only need to know the department "menswear" and the product type "swimsuit-one-piece". For an up to date list, please make use of our taxonomy endpoint. Currently, in https://api.depop.com/api/v3/attributes/ under the key `group`.
  - `size_set_id` number: The size set ID for the given Department and Product Type.
  - `size_id` number: The size ID for a given size Set ID.
  - `condition` 'brand_new' | 'used_like_new' | 'used_excellent' | 'used_good' | 'used_fair'
  - `colour` string[], required
  - `style` string[], required
  - `age` string[], required
  - `source` string[], required
  - `brand` string, required: The brand name of the product. For example, "Nike".
  - `attributes` object, required: Additional attributes of the product. For an up to date list, please make use of our attributes endpoint.
  - `is_boosted` boolean, required: Whether the product is currently boosted.
  - `created_at` string, date-time, required: The date and time when the product was created.
  - `updated_at` string, date-time, required: The date and time when the product was last updated.

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden - Insufficient scope

---

[API](https://skmtc.dev/depop/apis/seller-api.md) - [All operations](https://skmtc.dev/depop/apis/seller-api/llms.txt) - [OpenAPI document](https://skmtc.dev/depop/apis/seller-api/revisions/56fef8e38e44?raw)
