openapi: 3.1.0 info: title: Seller API status Shop Management 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: Shop Management description: Shop and seller information endpoints paths: /api/v1/shop/: get: summary: Get seller details description: 'This endpoint allows you to retrieve details about your Depop shop, including your seller ID, username, and country code. **Required OAuth Scope:** `shop_read`' operationId: getSellerDetails tags: - Shop Management responses: '200': description: Seller details content: application/json: schema: $ref: '#/components/schemas/SellerDetails' example: id: 97082934 username: good_will_charity country_code: US '401': $ref: '#/components/responses/Unauthorized' '403': description: Forbidden - Insufficient scope content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: id: a210923f-c1f3-4d84-a2bd-7f18c68553e2 errors: - code: insufficient_scope message: 'The request requires higher privileges than provided by the access token. Required scope: shop_read' /api/v1/shop/seller-addresses/: get: summary: Get seller addresses description: 'This endpoint allows you to retrieve all active addresses associated with your Depop shop. **Required OAuth Scope:** `shop_read` These addresses can be used to determine available shipping providers for your shop.' operationId: getSellerAddresses tags: - Shop Management responses: '200': description: A paginated list of seller addresses content: application/json: schema: type: object required: - meta - data properties: meta: type: object required: - has_more properties: cursor: type: - string - 'null' description: Cursor for pagination. Null when there are no more results. example: MTIzNDU2fDIwMjUtMDEtMTVUMTA6MzA6MDBafDEyMw has_more: type: boolean description: Indicates whether there are more results available. example: false data: type: array items: $ref: '#/components/schemas/SellerAddress' example: [] example: meta: cursor: MTIzNDU2fDIwMjUtMDEtMTVUMTA6MzA6MDBafDEyMw has_more: false data: - id: 123456 name: John Doe address: 123 Main Street address2: Apt 4B city: London state: Greater London postal_code: SW1A 1AA country: GB last_modified: '2025-01-15T10:30:00Z' '401': $ref: '#/components/responses/Unauthorized' '403': description: Forbidden - Insufficient scope content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: id: a210923f-c1f3-4d84-a2bd-7f18c68553e2 errors: - code: insufficient_scope message: 'The request requires higher privileges than provided by the access token. Required scope: shop_read' /api/v1/shop/seller-addresses/{address_id}/shipping-providers/: get: summary: Get available shipping providers for an address description: 'This endpoint allows you to retrieve the available shipping providers for a specific seller address. **Required OAuth Scope:** `shop_read` The response includes the shipping providers and their available parcel sizes with pricing information. If no shipping providers are available for the given address, manual shipping will be returned as the provider Id.' operationId: getShippingProviders tags: - Shop Management parameters: - name: address_id in: path description: The ID of the seller address. required: true schema: type: integer format: int64 example: 123456 responses: '200': description: A list of available shipping providers content: application/json: schema: type: array items: $ref: '#/components/schemas/ShippingProviderInfo' example: - id: MY_HERMES parcel_sizes: - id: small title: Small subtitle: Tops, jeans, dresses and jewellery cost: original_amount: '2.99' original_currency: GBP amount: '2.99' currency: GBP courier_service: DROP_OFF - id: medium title: Medium subtitle: Coats, jackets, trainers and shoes cost: original_amount: '4.99' original_currency: GBP amount: '4.99' currency: GBP courier_service: DROP_OFF '401': $ref: '#/components/responses/Unauthorized' '403': description: Forbidden - Insufficient scope content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: id: a210923f-c1f3-4d84-a2bd-7f18c68553e2 errors: - code: insufficient_scope message: 'The request requires higher privileges than provided by the access token. Required scope: shop_read' '404': description: Address not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' example: id: a210923f-c1f3-4d84-a2bd-7f18c68553e2 errors: - code: address_not_found message: Address with ID 999999 not found components: schemas: ShippingParcelSize: type: object required: - id - title - subtitle - cost - courier_service properties: id: type: string description: The unique identifier for the parcel size. example: SMALL title: type: string description: The display title for the parcel size. example: Small parcel subtitle: type: string description: Additional information about the parcel size (e.g., dimensions). example: Up to 35 x 25 x 16cm cost: $ref: '#/components/schemas/ShippingParcelCost' courier_service: type: string description: 'The courier service type for this parcel size. - `DROP_OFF`: Seller drops off the parcel at a designated location - `COURIER_COLLECT`: Courier collects the parcel from the seller - `OTHER`: Other courier service types (reserved for future use) ' enum: - DROP_OFF - COURIER_COLLECT - OTHER example: DROP_OFF example: id: small title: Extra small subtitle: Under 8oz cost: original_amount: '5.99' original_currency: USD amount: '5.00' currency: USD courier_service: DROP_OFF SellerDetails: type: object required: - id - username - country_code properties: id: type: integer format: int64 description: The unique identifier for the seller. example: 97082934 username: type: string description: The Depop username of the seller. example: good_will_charity country_code: type: string description: The ISO 3166-1 alpha-2 country code of the seller. example: US example: id: 97082934 username: good_will_charity country_code: US 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. ShippingParcelCost: type: object required: - original_amount - original_currency - amount - currency properties: original_amount: type: string description: The original cost amount before any conversions. example: '3.50' original_currency: type: string description: The original currency code. example: GBP amount: type: string description: The cost amount (may be converted to buyer's currency). example: '3.50' currency: type: string description: The currency code for the amount. example: GBP example: original_amount: '3.50' original_currency: GBP amount: '3.50' currency: GBP ShippingProviderInfo: type: object required: - id - parcel_sizes properties: id: type: string description: The unique identifier for the shipping provider. example: USPS parcel_sizes: type: array description: Available parcel sizes for this shipping provider. items: $ref: '#/components/schemas/ShippingParcelSize' example: id: USPS parcel_sizes: - id: small title: Extra small subtitle: Under 8oz cost: original_amount: '5.99' original_currency: USD amount: '5.00' currency: USD courier_service: DROP_OFF 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' SellerAddress: type: object required: - id - name - address - city - state - postal_code - country properties: id: type: integer format: int64 description: The unique identifier for the address. example: 123456 name: type: string description: The name associated with the address. example: John Doe address: type: string description: The primary address line. example: 123 Main Street address2: type: - string - 'null' description: The secondary address line (optional). example: Apt 4B city: type: string description: The city of the address. example: London state: type: string description: The state or county of the address. example: Greater London postal_code: type: string description: The postal code or ZIP code of the address. example: SW1A 1AA country: type: string description: The ISO 3166-1 alpha-2 country code. example: GB last_modified: type: - string - 'null' format: date-time description: The timestamp when the address was last modified (optional). example: '2025-01-15T10:30:00Z' example: id: 123456 name: John Doe address: 123 Main Street address2: Apt 4B city: London state: Greater London postal_code: SW1A 1AA country: GB last_modified: '2025-01-15T10:30:00Z' 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 securitySchemes: BearerAuth: type: http scheme: bearer bearerFormat: API key