Here's a step-by-step guide to help you publish your item for sale using the API.
This guide provides a technical overview of the steps required to publish an item for sale on the Wallapop platform using the API, along with sample API requests. For a conceptual understanding of the process at a high level, please refer to our Publish Item Flow.
The following sequence diagram demonstrates the actions performed by the API client during the item listing process:
First things first—let's find the right category for your item! Start by sending a GET request to /items/categories to access Wallapop’s category hierarchy. Don’t forget to replace <YOUR_TOKEN_HERE> with your access token.
- Production
https://connect.wallapop.com/items/categories
- cURL
- Python
- JS
- Go
- Java
- C#
curl -i -X GET \
https://connect.wallapop.com/items/categories \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'A successful request returns a 200 OK status with Wallapop's categories.
The next step is to a choose a category from the list. Choose wisely! An item can only be assigned to a category if its assignable_to_item property is set to true. For example, if you’re selling a pair of women’s activewear shorts, you’ll want to select Shorts under the Activewear category.
Next up, find out what info Wallapop needs for your category. Send a GET request to /items/categories/{id}/attributes, swapping {id} with the relevant category ID.
- Production
https://connect.wallapop.com/items/categories/{id}/attributes
- cURL
- Python
- JS
- Go
- Java
- C#
curl -i -X GET \
https://connect.wallapop.com/items/categories/12467/attributes \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>'A successful request will return a 200 OK status, along with a list of attributes. Some attributes are mandatory while others are optional. If you’re selling a car, for instance, you'll need attributes like brand and model:
{
"attributes": [
{ "type": "text", "id": "brand", "is_mandatory": true, "max_length": 75 },
{ "type": "text", "id": "model", "is_mandatory": true, "max_length": 75 },
// other attributes...
]
}Make sure you stick with any character limits and guidelines—it's all in the details!
You’re ready to go! Send a POST request to the /items endpoint with all the necessary info in the request body. Don't forget the category_leaf_id, which links to your chosen category.
- Production
https://connect.wallapop.com/items
- cURL
- Python
- JS
- Go
- Java
- C#
curl -i -X POST \
https://connect.wallapop.com/items \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"item": {
"category_leaf_id": "9931",
"title": "Title example",
"description": "A renowned line of performance and lifestyle sneakers that offer superior comfort, support, and style both on and off the court.",
"price": {
"cash_amount": 75.5,
"currency": "EUR"
},
"attributes": {
"external_id": "407947058",
"brand": "Abc Design",
"size": 34,
"condition": "new",
"color": "yellow"
},
"hashtags": [
"awesome",
"original"
],
"delivery": {
"allowed_by_user": true,
"max_weight_kg": 10,
"free_shipping": false
}
},
"main_image": {
"url": "http://cdn.portal.com/image129.jpg"
},
"stock": {
"units": 0
}
}'A successful request will net you a 201 Created status, plus the id of your brand-new listing.
Just send a GET request to /items/{id}, using the item's specific id!
To stop showing an item (like a virtual hiding act!), send a PUT request to /items/{id}/inactivate. You’ll need a Wallapop Pro subscription for this magic. Want to bring it back? Just send a request to /items/{id}/activate.
Last but definitely not least, let's make your listing pop! In the previous example, while creating an item, we specified a main_image to feature at the top. Want to add more flair? Send a POST request to /items/{id}/images, including the image url and display order—starting with 0 for your first additional image!
- Production
https://connect.wallapop.com/items/{itemId}/images
- cURL
- Python
- JS
- Go
- Java
- C#
curl -i -X POST \
https://connect.wallapop.com/items/xpzpvny244z3/images \
-H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"url": "http://cdn.portal.com/image129.jpg",
"order": 0
}'When all goes well, you'll get a 201 Created status on your image upload, plus its id.
Just send a DELETE request to /items/{itemId}/images/{imageId}, using the image's specific id!
Your listing is live! Before you get ready for a buyer to swoop in, we recommend reviewing our Items API to learn how to manage your inventory. This will help you keep your listings up-to-date.
Once you are comfortable with managing your listings, you can head on over to our Transactions Guide!
Send a GET request to /items! If you have many items for sale, you can paginate the results instead of receiving a large list all at once.