Changelog
We'll share updates and changes to the Depop Selling API here. This will help you stay informed about new features, improvements, and any breaking changes.
Subscribe to updates
Subscribe to our RSS feed to get notified of changes. It works with any RSS reader, for example, the Slack RSS app.
August 2026
Feature webhooks Self-serve webhooks
You can now set up and manage your own webhooks through the API — no need to contact us to register or change a URL.
New endpoints:
POST /api/v1/webhooks/- create a webhook configuration with a URL and the event types you want to subscribe to.GET /api/v1/webhooks/- list your webhook configurations.PATCH /api/v1/webhooks/:webhookConfigId/- update a configuration, for example to change the subscribed events or temporarily disable deliveries.DELETE /api/v1/webhooks/:webhookConfigId/- delete a configuration.
Creating a webhook
Register a publicly accessible HTTPS URL and choose your events. You can name events in full, or use a wildcard such as v1:order.* to subscribe to a whole group — including any new events we add to it in the future.
{
"url": "https://example.com/webhooks",
"enabled": true,
"event_types": [
"v1:order.*",
"v1:product.update"
]
}
The response contains the ID of your new configuration and the secret used to sign every webhook we send to it:
{
"webhook_id": "33a735f2-e68f-49b4-8192-45fb7ec50ce6",
"secret": "rncxmdh5v2b37etli3ajb0e8f3xvopel"
}
Things to know
- Save your secret: the secret is returned only once, in the creation response, and cannot be retrieved again. Use it to validate that incoming webhooks came from Depop.
- Limits: you can have up to 10 webhook configurations, and each URL can only be registered once.
- Pausing deliveries: set
"enabled": falsevia thePATCHendpoint to pause a webhook without deleting it.
To get started, follow the Your first webhook guide, or read more about how webhooks work on the Webhooks concept page. The full request and response schemas are in the API Reference.
Feature webhooks Product updated webhook
You can now be notified whenever a product in your shop is updated, so you can keep your own catalogue in sync without polling the products endpoints.
New webhook event type:
v1:product.update- sent whenever a product in your shop is updated on Depop, whether the change was made through this API or by the seller in the Depop app or website.
Payload
The data object contains the seller ID and the full, current state of the product, in the same shape as the response of GET /api/v1/products/by-sku/{sku}/.
{
"id": "d542156h-f4i6-7g17-d5eg-0i41f91886h5",
"event_type": "v1:product.update",
"created_at": "2026-08-13T00:00:00Z",
"data": {
"seller_id": 123456,
"product": {
"sku": "ABC-12345-S-BL",
"product_id": 7021251,
"slug": "vintage-nike-t-shirt-7021251",
"status": "STATUS_ONSALE",
"address": {
"country_code": "GB",
"state": "Greater London"
},
"description": "Vintage Nike T-Shirt in excellent condition.\nBlack with white swoosh logo on the front.\n\n#vintage #nike",
"price_currency": "GBP",
"price_amount": "25.99",
"current_price": "24.00",
"discount_price": "24.00",
"national_shipping_cost": "3.50",
"international_shipping_cost": "12.00",
"quantity": 1,
"pictures": [
{
"url": "https://media-photos-staging.depop.com/b0/18220/5612584_b6795bc34778465293e45647518906d6/P0.jpg",
"height": 1280,
"width": 1280
}
],
"department": "menswear",
"product_type": "tshirts",
"size_set_id": 52,
"size_id": 10,
"condition": "used_excellent",
"colour": [
"black",
"white"
],
"style": [
"streetwear"
],
"age": [
"90s"
],
"source": [
"vintage"
],
"attributes": {
"material": [
"cotton"
]
},
"brand": "Nike",
"is_boosted": false,
"created_at": "2026-01-15T10:30:00Z",
"updated_at": "2026-08-13T00:00:00Z"
}
}
}
Things to know
- Matching against your records:
product_idandslugare stable for the lifetime of a product, soproduct_idis the safest key to match the payload against your own records. Assume every other field can change between updates, includingsku. - Quantity:
quantityreflects the live stock level at the time the webhook was generated, which may differ from the quantity that was set by the update itself (for example if the product also sold). - Offer prices:
auto_send_offer_priceandauto_negotiate_offer_priceare never included in this payload. UseGET /api/v1/products/by-sku/{sku}/with theoffers_readscope if you need the current offer pricing. - Delivery: Delivery is best effort. Please use the products endpoints to reconcile if you need a guaranteed up-to-date view of a product.
Head over to our API Reference documentation for the full payload schema, and to Validating webhooks if you are setting up webhooks for the first time.
July 2026
Feature api/v1/products Filter and sort products by creation date
You can now filter and sort your products by when they were created on GET /api/v1/products/.
sort_bynow acceptscreated_date_desc, which returns products in descending order by creation date (most recently created first). The existingid_desc(default) andid_ascvalues are unchanged.from_created_date- Only return products created on or after this date. Must be an ISO-8601 datetime (e.g.2025-01-01T00:00:00Z).to_created_date- Only return products created on or before this date. Must be an ISO-8601 datetime (e.g.2025-12-31T23:59:59Z).
Both date parameters are optional and can be combined to request a specific creation-date window.
Feature api/v1/products Simulate a like on a product
You can now trigger a like on one of your products for testing, alongside the existing purchase-simulation endpoints.
New endpoints available:
POST /api/v1/products/by-product-id/:productId/like/- Simulate a like by product IDPOST /api/v1/products/by-sku/:sku/like/- Simulate a like by SKU
The product will be liked by a test user, and you will receive a webhook for the like. This makes it easier to test your like-webhook handling end to end.
Note: These endpoints are only available in the staging environment.
Improvement api/v1/products Validation for Depop-hosted picture URLs
When a listing is created or updated with a picture URL that is already hosted on Depop (media-photos.depop.com), we now check that the picture belongs to the requesting user and can still be used before creating the listing.
What's new
- Ownership check: A Depop-hosted picture URL must belong to the requesting user account. Passing a URL for a picture owned by another user is rejected.
- Availability check: The picture must still exist and be usable. A URL pointing at a picture that no longer exists, or that is invalid, is rejected.
These checks apply to the create and update product endpoints — POST /api/v1/products/, PUT /api/v1/products/by-sku/:sku/, PUT /api/v1/products/by-product-id/:productId/ and PUT /api/v1/products/by-slug/:slug/.
Rejected requests return a 422 response with a validation error, for example:
Depop Picture URL <url> does not belong to the requesting userDepop Picture URL <url> could not be processed because it is not valid or no longer exists"
Note: External picture URLs (not hosted on media-photos.depop.com) are unaffected and continue to work as before.
We have published a new Errors page documenting the error response format, all error codes and their HTTP statuses, common validation rules and limits, and guidance on retries and error handling in your integration.
If you run into an error that isn't covered, let us know so we can add it.
Improvement api/v1/products Change the size of an existing listing
You can now change the size of an existing listing through the update product endpoints.
Previously, sending a different size_id when updating a listing returned Existing product sizeId can not be changed., and the only workaround was to delete and re-list the item (with a new SKU if you use them). That restriction has been removed.
What's new
- Change size: Update a listing's size by sending the new
size_id. The listing's stock is moved to the new size, so subsequent responses reflect the updated size. - Supported endpoints: The product update endpoints —
PUT /api/v1/products/by-sku/:sku/,PUT /api/v1/products/by-product-id/:productId/andPUT /api/v1/products/by-slug/:slug/.
Note: Adding a size to a listing that was created without one is still not supported. Updating an item that was listed without a size by sending a size_id returns Existing Product does not have variants, non-variant to variant product updates are currently not supported.
Improvement api/v1/insights More shop and product insights
We've expanded the Insights API with new product-level endpoints and additional shop-level counters.
Sections are scope-aware: each section is included only when your access token has the matching OAuth scope, and is omitted otherwise. A 403 is returned only when your token has none of the scopes for that endpoint.
New: product insights
You can now retrieve live insights for an individual product:
GET /api/v1/insights/products/by-sku/:sku/live/GET /api/v1/insights/products/by-slug/:slug/live/GET /api/v1/insights/products/by-product-id/:productId/live/
| Section | Contents | Required scope |
|---|---|---|
likes_count |
Number of likes on the product | products_read |
bag_count |
Number of users who have the product in their bag | products_read |
offers |
Offers on the product awaiting seller and buyer review | offers_read |
boost |
Ad performance for the product: organic and boosted clicks and impressions | products_read |
Additional shop insights counters
GET /api/v1/insights/shop/live/ now returns more than product counts. Alongside products, the response can now include your shop rating, offers awaiting your review, boosted listings (ads) counts, and orders awaiting shipping.
| Section | Contents | Required scope |
|---|---|---|
products |
Products currently on sale and total products in your shop | products_read |
boost |
Boosted listings currently live and boosted listings that have sold | products_read |
rating |
Average seller rating and number of ratings | shop_read |
offers |
Offers across your shop awaiting your review | offers_read |
orders |
Orders awaiting shipping | orders_read |
Note: Counters may be delayed by up to 60 minutes and may not reflect the most recent changes to your shop inventory.
June 2026
Feature api/v1/insights Shop insights
You can now retrieve insights about your shop through the API!
New endpoint available:
GET /api/v1/insights/shop/live/- Get shop insights
This endpoint returns the number of products currently on sale and total products in your shop.
Note: Counters may be delayed by up to 60 minutes and may not reflect the most recent changes to your shop inventory.
This endpoint requires the products_read OAuth scope.
May 2026
Feature api/v1/products Product sorting and filtering
You can now sort and filter products when listing your inventory!
New query parameters available on GET /api/v1/products/:
sort_by- Sort products by product ID.id_descreturns products in descending order (newest first),id_ascreturns products in ascending order (oldest first). Defaults toid_desc.state- Filter products by state.sellingreturns products currently on sale,soldreturns products that have been sold.allreturns all products regardless of state. When not provided, defaults toall.
Feature api/v1/pricing Pricing Inspiration
You can now get price predictions and similar sold items through the API!
New endpoint available:
POST /api/v1/pricing/inspiration/- Get pricing inspiration for a product listing
This endpoint provides a predicted price range along with similar sold items to help sellers make informed pricing decisions when listing items.
Note: Pricing inspiration is currently available only for UK and US items. This endpoint does not require OAuth scopes.
To learn more about how pricing inspiration works and its limitations, see the Pricing Inspiration documentation.
April 2026
Improvement api/v1/orders Seller shipping fee in fee breakdown
We've added SHIPPING_FEE to the seller fee breakdown in order responses.
The seller_fee_breakdown array now includes a SHIPPING_FEE entry that represents the cost of shipping labels when the seller pays for shipping (e.g. when using Depop shipping). This fee will be 0.00 when the buyer pays for shipping.
This enhancement provides complete visibility into all seller costs associated with an order, including shipping label expenses that are deducted from the seller's payout.
What's new
- New fee type:
SHIPPING_FEEis now included in theseller_fee_breakdownarray for all orders - When it applies: The amount will be greater than
0.00when the seller pays for a Depop shipping label. - Buyer-paid shipping: When the buyer pays for shipping, this fee will still appear but with an amount of
0.00
Example
{
"seller_fee_breakdown": [
{
"fee_type": "PAYMENT_FEE",
"amount": "2.00",
"currency": "GBP"
},
{
"fee_type": "DEPOP_FEE",
"amount": "3.00",
"currency": "GBP"
},
{
"fee_type": "SHIPPING_FEE",
"amount": "6.75",
"currency": "GBP"
}
]
}
In this example, the seller paid £6.75 for a Depop shipping label, which is reflected in the fee breakdown.
Improvement webhooks Product slug in like/unlike webhooks
Product like and unlike webhooks now include the slug field in their payload!
The slug field provides the URL-friendly identifier for the product on Depop, making it easier to reference products in your integration without relying solely on product IDs or SKUs.
Webhook event types affected:
v1:product.like- Sent when a user likes a productv1:product.unlike- Sent when a user unlikes a product
The slug field is included alongside existing fields: seller_id, product_id, sku (optional), and liker_id.
Feature api/v1/products Boosting
You can now boost and unboost products through the API!
Use the is_boosted field when creating or updating a product to control whether it appears in boosted placements. The field is also included in product responses.
To learn more about how boosting works and its implications for your integration, see the Boosting documentation.
March 2026
Feature api/v1/shop Seller details
You can now retrieve your seller details through the API!
New endpoint available:
GET /api/v1/shop/- Get seller details including your ID, username, and country code
This endpoint requires the shop_read OAuth scope and allows you to retrieve basic information about your Depop shop.
Feature api/v1/products Slug-based product endpoints
You can now manage products using their Depop slug in addition to SKU and product ID!
New endpoints available:
GET /api/v1/products/by-slug/:slug/- Get product by slugPUT /api/v1/products/by-slug/:slug/- Update product by slugPATCH /api/v1/products/by-slug/:slug/- Partially update product by slugDELETE /api/v1/products/by-slug/:slug/- Delete product by slugPOST /api/v1/products/by-slug/:slug/mark-as-sold/- Mark product as sold by slugPOST /api/v1/products/by-slug/:slug/offer/- Submit an offer by slug
The slug field is now included in all create and update responses, including:
PUT /api/v1/products/by-sku/:sku/PUT /api/v1/products/by-product-id/:productId/PUT /api/v1/products/by-slug/:slug/POST /api/v1/products/
February 2026
Feature api/v1/products Manual offer submission
You can now manually submit offers to specific buyers through the API!
New endpoints available:
POST /api/v1/products/by-product-id/:productId/offer/- Submit an offer by product IDPOST /api/v1/products/by-sku/:sku/offer/- Submit an offer by SKU
These endpoints allow you to send targeted offers to individual buyers, giving you more control over the negotiation process.
Head over to the Managing Offers documentation to learn more.
Feature api/v1/products Discounts
We now support setting discounts for listings through the API!
When you provide a discount_price, the original price is still shown to the buyers with a strikethrough (for example, $20 $15).
January 2026
Feature api/v1/products Depop Managed Shipping
We now support Depop Managed Shipping for listings through the API!
When creating or updating a product, you can now specify depop_shipping instead of national_shipping_cost.
This allows Depop to handle shipping logistics, including calculating shipping costs based on the selected provider and parcel size.
Head over to the Shipping documentation to learn more about Depop Managed Shipping.
December 2025
Feature api/v1/shop/seller-addresses Seller address management
We now support retrieving seller shop info using the API!
New endpoints available:
GET /api/v1/shop/seller-addresses/- List all seller addressesGET /api/v1/shop/seller-addresses/:addressId/shipping-providers/- List shipping providers and parcel sizes for a specific seller address
These endpoints allow you to retrieve available shipping options with their parcel sizes based on the seller's address.
November 2025
Feature api/v1/products Product ID endpoints
We now support managing products by product ID in addition to SKU-based endpoints.
New endpoints available:
POST /api/v1/products/- Create a new product (returns product ID)GET /api/v1/products/by-product-id/:productId/- Get product by IDPUT /api/v1/products/by-product-id/:productId/- Update product by IDPATCH /api/v1/products/by-product-id/:productId/- Partially update product by IDDELETE /api/v1/products/by-product-id/:productId/- Delete product by IDPOST /api/v1/products/by-product-id/:productId/mark-as-sold/- Mark as sold by IDPOST /api/v1/products/by-product-id/:productId/purchase/- Simulate purchase by ID (staging only)
These endpoints support products without SKU fields, providing more flexibility for partners who prefer to manage inventory using Depop's product IDs rather than external SKUs.
Important changes:
- The
skufield is now optional in product responses. Existing users who exclusively use SKU-based workflows will always have this field populated. - Legacy product endpoints without the
/by-sku/prefix are now deprecated. Please update your integration to use the/by-sku/endpoints:/api/v1/products/:sku/→/api/v1/products/by-sku/:sku//api/v1/products/:sku/mark-as-sold/→/api/v1/products/by-sku/:sku/mark-as-sold/
- The legacy endpoints will continue to work for now, but we recommend migrating to the new URLs to ensure compatibility with future updates.
October 2025
Improvement api/v1/products WebP support for images
We now support WebP images for product listings in addition to PNG and JPEG.
Note: Transparency is not supported as we are converting WebP images to JPEG internally. A white background will be applied to the image.
September 2025
Improvement api/v1/orders Enhanced refund details
We now provide detailed refund breakdowns in order responses.
The refund_summary object now includes a breakdown field that shows how refund amounts are distributed between buyer and seller for different components (items, shipping, fees).
This enhancement provides greater transparency into refund calculations and helps partners understand the full refund structure.
August 2025
Feature api/v1/products Automatic Brand matching
We now handle brand matching automatically using brand_name.
Action required: Please update your integration to use brand_name instead of brand. The brand_name field is now mandatory for all new partner integrations.
July 2025
Feature api/v1/products Auto-negotiate offers
Auto-negotiate offers is now available!
This feature allows you to automatically respond to offers from your buyers. Together with Auto-send, this can help you fully automate the handling of offers.
To learn more how you can use this feature, please refer to the Managing offers documentation.
Improvement api/v1/products PNG support for images
We now support PNG images for product listings in addition to JPEG.
Note: Transparency is not supported as we are converting PNG images to JPEG internally. A white background will be applied to the image.
June 2025
Feature api/v1/products Refunds
You can now process full or partial refunds for your orders using the API directly.
To learn more about how to use this feature, please refer to the Refunds documentation.
Improvement api/v1/products Multi-quantity support
You can now create listings with a quantity greater than 1.
Important: that you should only call Mark as Sold when it's completely sold out and use the PUT or PATCH endpoint to update the quantity.
Feature Public API documentation
We have invested in improving our API documentation to make it more comprehensive and self-serving.
If you have any feedback or suggestions, please reach out to us at [email protected].
May 2025
Feature api/v1/products Auto-send offers
Auto-send offers is now available!
This feature allows you to automatically engage with your buyers that have liked or bagged your product by sending them an offer.
Head on to our API Reference documentation to learn more about the auto_send_offer_price field.
Improvement api/v1/products Restocking
You can now restock your listings that were previously sold out or deleted.
To learn more about how to restock your listings, please refer to the Restocking documentation.