This content originally appeared on DEV Community and was authored by Snowball
Background
In the Action Figure category on eBay, the listing UI only provides two condition options:
NEW and USED.
However, when creating a SKU using the eBay Inventory API, specifying "USED"
directly causes an error.
Root Cause
According to eBay’s API specification, the enum value "USED"
does not exist.
- UI Label →
"USED"
- API Expected Value →
"USED_EXCELLENT"
(Condition ID:3000
)
So, to reproduce the UI’s “USED” condition in the API, you need to use "USED_EXCELLENT"
instead.
References
Example: Fails with "USED"
\
curl -X PUT 'https://api.ebay.com/sell/inventory/v1/inventory_item/test-sku-001' \
-H "Authorization: Bearer DUMMY_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"condition": "USED",
"product": {
"title": "Dummy Action Figure",
"description": "Dummy description for an action figure item.",
"imageUrls": ["https://dummyurl.com/dummy-image.jpg"]
},
"availability": {
"shipToLocationAvailability": {
"quantity": 1
}
}
}'
\```
{% endraw %}
### Error Response
\
{% raw %}
```json
{
"errors": [
{
"message": "Could not serialize field [condition]"
}
]
}
\```
{% endraw %}
## ✅ Example: Success with {% raw %}`"USED_EXCELLENT"`
\
{% raw %}
```bash
curl -X PUT 'https://api.ebay.com/sell/inventory/v1/inventory_item/test-sku-001' \
-H "Authorization: Bearer DUMMY_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"condition": "USED_EXCELLENT",
"product": {
"title": "Dummy Action Figure",
"description": "Dummy description for an action figure item.",
"imageUrls": ["https://dummyurl.com/dummy-image.jpg"]
},
"availability": {
"shipToLocationAvailability": {
"quantity": 1
}
}
}'
\```
{% endraw %}
Now the **USED** listing works correctly via API.
## Summary
- In the Action Figure category (and similar), the **UI only shows "New" and "Used"**, but...
- The eBay Inventory API **does not accept {% raw %}`"USED"`{% endraw %}**.
- Instead, use {% raw %}`"USED_EXCELLENT"`{% endraw %} (Condition ID {% raw %}`3000`{% endraw %}) when listing as used.
- Therefore:
- New item → {% raw %}`"condition": "NEW"`{% endraw %}
- Used item → {% raw %}`"condition": "USED_EXCELLENT"`{% endraw %}
- This mismatch stems from eBay’s internal {% raw %}`ConditionEnum`{% endraw %} design and is **not clearly documented**, making it a common source of confusion for developers.
This content originally appeared on DEV Community and was authored by Snowball