Endpoint: https://{base_url}/v1/seller-products/
Method: POST
Headers:
JWT {id_token}
application/json
application/json
Payload:
Response codes:
curl --location 'https://partners-sandbox-api.olist.com/v1/seller-products/' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: JWT eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJZel90TVpiXzdOd2NMZVVaT0tYc2NRdW8wUE4zN0JvYkNONjhFdE80WVFzIn0.eyJleHAiOjE3MzY2MjY3NzUsImlhdCI6MTczNjU0MDM3NSwiYXV0aF90aW1lIjoxNzM2NTM5MjkxLCJqdGkiOiIzODQ4YzIxYS1jMDA5LTQ3YTQtYTQ0Ni04MmJkM2M3NmFjNTMiLCJpc3MiOiJodHRwczovL2F1dGgtZW5naW5lLm9saXN0LmNvbS9yZWFsbXMvM3JkLXBhcnR5LXNhbmRib3giLCJhdWQiOiJkZXZlbG9wZXJzIiwic3ViIjoiMDYzYTlkYzctZGU5MC00N2NmLWFiZGUtMWRhMTc0MTMwY2RhIiwidHlwIjoiSUQiLCJhenAiOiJkZXZlbG9wZXJzIiwic2Vzc2lvbl9zdGF0ZSI6IjllNTViNTJjLTQyYTItNGM0My05NmEyLWFkOWFlMDk1Zjg0MSIsImF0X2hhc2giOiJTWmlvZ29UVnp6M1BfcWVDT013M0JRIiwiYWNyIjoiMSIsInNpZCI6IjllNTViNTJjLTQyYTItNGM0My05NmEyLWFkOWFlMDk1Zjg0MSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJkZXZlbG9wZXJzIiwiZW1haWwiOiJkZXZlbG9wZXJzQHBhcnRuZXJzLXNhbmRib3gtYXBpLm9saXN0LmNvbSJ9.OIZRFGb5HhL4NoJJqlAMMdnPzRvlh4mXmHV6wzAhlDpbl6zglUeriGsDNqaCt8vm4CFWI7zLh3PqPxNvDOQlue2PoPDyyXNFp2wxrnJdnAAz0aDylpGUFCCRr18uNjEBXC9FLxRVRyzqGcxcA-OJXEneg5BW-aki9GZFHJcmRk5dgfo9oerFo4qMUG42nyLbKaKuLO4B9VH_wjkhtOCeLTo9p-rGi3CRTjpp_9jCPt_hGIITi30qC8iGwW8zxcUuwavDpEq1zZ3Unq6DKNx8jI9ViWE526Zf0hTk_ICitoYkdyx4ri20iFlXoE2t157MgvdiPXDtf9tO24y1i_rArA' \
--data '{
"gtin": "21700719670850",
"prices": [
{
"channel_slug": "mercadolivre",
"currency": "BRL",
"minimum_quantity": 1,
"offer": "290.00",
"value": "300.00",
"price_freight_shift": "0.00"
},
{
"channel_slug": "magazineluiza",
"currency": "BRL",
"minimum_quantity": 1,
"offer": "290.00",
"value": "300.00",
"price_freight_shift": "0.00"
}
],
"name": "Camisa Polo Muito Linda Mesmo",
"attributes": [
{
"attribute_name": "Cor",
"attribute_value": "Verde",
"category_attribute_id": null
},
{
"attribute_name": "Tamanho",
"attribute_value": "G",
"category_attribute_id": null
}
],
"description": "Camisa Polo Muito Linda Mesmo\n\nCor: Verde\nTamanho: G\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Ut dui enim, aliquam eu sagittis a, accumsan ac lectus. Pellentesque at facilisis odio. Nulla sollicitudin volutpat metus et pharetra. Nullam non velit aliquam, tempus mi et, posuere sem. Sed nec nisi nec nibh vulputate tincidunt. Duis facilisis ipsum vel vulputate tincidunt. Vestibulum sit amet posuere nisi, eget rutrum nunc. Morbi eu nisi tristique, accumsan leo eu, accumsan enim. Pellentesque quis libero risus. Nullam enim nisl, ultrices sit amet volutpat quis, tempor in ipsum. Nullam sodales congue diam. Cras accumsan libero sed eros facilisis, vitae aliquet turpis vestibulum. Praesent tortor ipsum, gravida sed mollis a, sollicitudin ac mauris. Proin laoreet bibendum lacus. Nunc a imperdiet felis. Morbi in orci sapien.",
"availability_days": 0,
"brand": "Novo Século",
"categories": [],
"free_shipping": false,
"origin": "marcellinho_pincas",
"package_measures": [
{
"height_unit": "cm",
"height_value": "50.0000",
"length_unit": "cm",
"length_value": "90.0000",
"weight_unit": "g",
"weight_value": "2000.00",
"width_unit": "cm",
"width_value": "20.0000",
"capacity": 1
}
],
"photos": [
{
"order": 0,
"url": "https://olist-v2-dev.s3.amazonaws.com/products-images/85c8e282-1f1a-4bda-a7cc-7b55553bfc94.jpg"
},
{
"order": 1,
"url": "https://olist-v2-dev.s3.amazonaws.com/products-images/c44563a73974485a-99cf-d58f9d67e599.jpg"
}
],
"in_campaign": false,
"product_code": "54321",
"product_measures": [
{
"height_unit": "cm",
"height_value": "2.0000",
"length_unit": "cm",
"length_value": "23.0000",
"weight_unit": "g",
"weight_value": "500.0000",
"width_unit": "cm",
"width_value": "16.0000"
}
],
"seller_id": {seller_id},
"stock": [
{
"availability_days": 0,
"quantity": 5
}
],
"tags": []
}'
You should explicitly define the origin
field of the product to be your client_id. Doing it, it makes the product auto-fill its data with a matching product (same gtin) if available and sends it directly to moderation. Doing this process avoids the need of the seller to sent it manually to moderation through the webapp. It also allows Olist to identify the origin of the products.
Package dimension must be different from zero and not be negative to be exported with success to olist.
Besides that, height, width, length, and weight must also be different from zero to be exported with success to olist.
If any of the two cases happen, you must share to the user the respective validation error above.
Dimensions
width: min 11cm | max 105 cm
height: min 2cm | max 106 cm
length: min 16cm | max 105 cm
weight: 30.000 g.
The sum of width + height + length
should be below 200 cm.
Special sellers can send larger sizes. To verify this you need to request https://partners-api.olist.com/v1/sellers/<SELLER_ID>/
and verify if the features
field has these values:
correios_industrial_tier
heavy_by_olist
out_max_package_measures
can_delivery_by_jadlog
ou jadlog_only
Validation for these sellers are:
Dimensions
width: min 11cm | max 170 cm
height: min 2cm | max 170 cm
length: min 16cm | max 170 cm
weight: 30.000 g.
The sum of width + height + length
should be below 240 cm.
If the product is already created you won't be able to create the product through API.
In this case you can list the products and associate the product at Olist with the product on your system. Remember that the field SKU in the response payload is the unique product identifier at Olist.
If the product is created with stock equal to 0, the product will not be sent to moderation, until the stock is greater than 0. If you force a PATCH
to moderation you will receive an error:The stock is required to be send to moderation.
The field categories
has to be sent with no value. Olist will categorize the product in accordance with each marketplace rules.
If not specified, the field capacity
will have the default value 1 assigned.
These prices
are used in campaigns and promotions per channel store. [Not Required].
in_campaign
, active products in campaign, using the store prices as reference price for the stores of the channels.
The field tags
has to be sent with no value.
The photo URL must not exceed 1024 characters. The photo resolution must have a minimum of 600x600 and a maximum of 2500x2500 and supported format JPEG, PNG, WEBP.
{
"seller_id": "{seller_id}",
"gtin": "21700719670855",
"sku": "PRDJTOFJPPUASX3R",
"group": "",
"product_code": "54321",
"name": "Camisa Polo Muito Linda Mesmo",
"brand": "Novo Século",
"description": "Camisa Polo Muito Linda Mesmo\n\nCor: Verde\nTamanho: G\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Ut dui enim, aliquam eu sagittis a, accumsan ac lectus. Pellentesque at facilisis odio. Nulla sollicitudin volutpat metus et pharetra. Nullam non velit aliquam, tempus mi et, posuere sem. Sed nec nisi nec nibh vulputate tincidunt. Duis facilisis ipsum vel vulputate tincidunt. Vestibulum sit amet posuere nisi, eget rutrum nunc. Morbi eu nisi tristique, accumsan leo eu, accumsan enim. Pellentesque quis libero risus. Nullam enim nisl, ultrices sit amet volutpat quis, tempor in ipsum. Nullam sodales congue diam. Cras accumsan libero sed eros facilisis, vitae aliquet turpis vestibulum. Praesent tortor ipsum, gravida sed mollis a, sollicitudin ac mauris. Proin laoreet bibendum lacus. Nunc a imperdiet felis. Morbi in orci sapien.",
"price": "290.00",
"offer": "290.00",
"active": true,
"approval": false,
"availability_days": 0,
"catalog_category": "",
"currency": "BRL",
"display_status": "draft",
"free_shipping": false,
"free_shipping_amount": "0.00",
"inactive_reason": "",
"in_campaign": false,
"is_external_integration": false,
"moderation_started_at": "",
"new_display_status": "pending",
"odin": "",
"origin": "developers",
"part_number": "",
"photo": "https://olist-v2-dev.s3.amazonaws.com/products-images/85c8e282-1f1a-4bda-a7cc-7b55553bfc94.jpg",
"price_freight_shift": "",
"previous_offer": "",
"quality_score": "",
"rejection_reasons": {},
"seller_price": null,
"status": "created",
"tags": [],
"tax_informations": "",
"type": "simple",
"virtual_campaign_opt_in": false,
"waiting_invoice": false,
"waiting_validation": "",
"categories": [],
"created_at": "2025-01-11T20:22:32.830292Z",
"updated_at": "2025-01-11T20:22:32.830304Z",
"attributes": [
{
"attribute_name": "Cor",
"attribute_value": "Verde",
"category_attribute_id": null
},
{
"attribute_name": "Tamanho",
"attribute_value": "G",
"category_attribute_id": null
}
],
"package_measures": [
{
"id": "0f763a8a-781b-4bec-8504-be54f771e184",
"height_unit": "cm",
"height_value": "50.0000",
"length_unit": "cm",
"length_value": "90.0000",
"width_unit": "cm",
"width_value": "20.0000",
"weight_unit": "g",
"weight_value": "2000.0000",
"capacity": 1
}
],
"photos": [
{
"id": "8df1b8f4-5397-4b77-a58e-655b57cb31d6",
"order": 0,
"url": "https://olist-v2-dev.s3.amazonaws.com/products-images/85c8e282-1f1a-4bda-a7cc-7b55553bfc94.jpg",
"status": "pending",
"metadata": {},
"automatic_changes": [],
"download_error_reason": ""
},
{
"id": "a561958d-f7c7-4d80-9ec4-1210b45cb84d",
"order": 1,
"url": "https://olist-v2-dev.s3.amazonaws.com/products-images/c44563a73974485a-99cf-d58f9d67e599.jpg",
"status": "pending",
"metadata": {},
"automatic_changes": [],
"download_error_reason": ""
}
],
"prices": [
{
"channel_slug": "mercadolivre",
"currency": "BRL",
"minimum_quantity": 1,
"offer": "290.00",
"value": "300.00",
"price_freight_shift": "0.00"
},
{
"channel_slug": "magazineluiza",
"currency": "BRL",
"minimum_quantity": 1,
"offer": "290.00",
"value": "300.00",
"price_freight_shift": "0.00"
}
],
"product_measures": [
{
"id": "f6f5df15-d174-4c7c-97b5-99ae4d80f12a",
"height_unit": "cm",
"height_value": "2.0000",
"length_unit": "cm",
"length_value": "23.0000",
"weight_unit": "g",
"weight_value": "358.0000",
"width_unit": "cm",
"width_value": "16.0000"
}
],
"stock": [
{
"quantity": 5,
"availability_days": 0
}
]
}
What's Next
Retrieving a Product