How to list an offer assigned to a product with one request

Via POST /sale/product-offers you can list with one request:

  • an active offer assigned to a product, which already exists in our database. Provide in your request EAN code (or product ID), price and quantity. You can retrieve product data via GET /sale/products?ean={ean}

    Click to view sample request:
      curl -X POST
      ‘https://api.allegro.pl/sale/product-offers’
      -H 'Authorization: Bearer {token}'
      -H 'Accept: application/vnd.allegro.beta.v1+json'
      -H 'Accept-Language: en-US'
      -H 'Content-Type: application/vnd.allegro.beta.v1+json'
      -d ‘{
      "product": {
        "id": "5902719471797"           -- EAN or product ID
      },
      "sellingMode": {
        "price": {
          "amount": "220.85",           
          "currency": "PLN"
        }
      },
      "stock": {
        "available": 10                 
      }
    }’

    If in response you receive information about missing required parameters, provide them in product object. You can check parameter ID with its value via GET /sale/{categoryID}/parameters.
    Click to view sample request:
      curl -X POST
      ‘https://api.allegro.pl/sale/product-offers’
      -H 'Authorization: Bearer {token}'
      -H 'Accept: application/vnd.allegro.beta.v1+json'
      -H 'Accept-Language: en-US'
      -H 'Content-Type: application/vnd.allegro.beta.v1+json'
      -d ‘{
      "product": {
        "id": "d26b023c-d52c-44f9-b61a-321eb202792b",
        "parameters": [
          {
            "id": "202293",
            "valuesIds": [
              "202293_211441"
            ]
          }
        ]
      },
      "sellingMode": {
        "price": {
          "amount": "220.85",
          "currency": "PLN"
        }
      },
      "stock": {
        "available": 1
      }
    }
    ’

  • an active offer assigned to a product, which is not in our database. Provide in your request (in product object), product data which describe your product. Also provide price and quantity information. We describe this process in detail further in this guide.

    Click to view sample request:
     curl -X POST
        ‘https://api.allegro.pl/sale/product-offers’
        -H 'Authorization: Bearer {token}'
        -H 'Accept: application/vnd.allegro.beta.v1+json'
        -H ‘Accept-Language: en-US’
        -H 'Content-Type: application/vnd.allegro.beta.v1+json'
        -d ‘{
        "product": {                        -- product data
                "name": "Test product",
                "category":{
                        "id":"89060"
                },
            "parameters":[
                {
                        "name": "EAN",
                        "values": [
                                    "0744861045021"
                        ]
                    },
                    {
                        "id": "237218",
                        "values": [
                                    "Test value"
                        ]
                    }
            ],
            "images":[   
                    "https://...first-image-address.jpeg"
            ]
      },
        "sellingMode": {
                "price": {
                    "amount": "220.85",         
                    "currency": "PLN"
                }
        },
         "stock": {
                "available": 10                 
        }
    }’

If, based on the data provided, we recognize that the product is in our database, we will take its data and include it in your offer:

  • category and parameters,
  • images,
  • product description,
  • EAN code,
  • compatibilityList section,
  • TecDoc specification.

You don’t need to perform a separate publication command to activate an offer. You don’t have to provide other data needed to list an offer, if you want them to be complemented with default values. The default values and their possible sources are presented in the table below. You can find more information, how to construct your request, if you want to provide different data than default values.

Field Value
Publication status Offer will be activated immediately
Selling mode Buy now
Unit type Unit (pieces)
Location Data from Allegro account settings (your address)
Invoice VAT
Handling Time 24 hours
Duration Until all available items will sold out
Delivery price list If you have only one delivery price list, we will assign it to the offer. In other cases - we will use the delivery price list with name default. If you don’t have a delivery price list with this name, we will return 422 status.
Implied warranty and Return policy If you have only one option for this fields, we will assign it to the offer. In other cases, we will use variant with name default. If you don’t have a variant with this name, we will return 422 status. This applies only to company accounts, for regular accounts we will not provide any value here.


In the future, when you use this resource, we will fill out your offers with the most recent data from our product catalog. If you don’t provide your own values, different from those in the product, you won’t need to copy or accept changes in your offers after we update the catalog. It will also allow us to automatically complete the parameters that we currently require when editing the offer.

How to provide your own values

The request structure is divided into two parts:

  • product - where you provide

    • EAN code or product ID, if you want to assign product, which is in our database, to an offer,

    • product data, if you want to assign product, which is not in our database, to an offer.

  • offer - data that determines the conditions in a specific offer, e.g. price, quantity, location, invoice information, etc. You can overwrite default offer values and add new ones. You can find a description of how to do further in this guide.

How to set your own title

We will automatically set offer title based on product name. If you want to set your own offer title, extend your request with name field:

  ...
  "name": "My own title"
  ...    

Click to view sample request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v1+json'
-H 'Accept-Language: en-US'
-H 'Content-Type: application/vnd.allegro.beta.v1+json'
-d ‘{
  "product": {
    "id": "5902719471797"
  },
  "name": "My own title",
  "parameters": [
        {
            "id": "11323",
            "valuesIds": [
                "11323_2"
            ]
        }
    ],
  "sellingMode": {
    "price": {
      "amount": "220.85",
      "currency": "PLN"
    }
  },
  "stock": {
    "available": 1
  }
}’

How to set offer parameters

Offer parameters are related to individual offer, e.g. condition, expiration date, but not with the specific product feature. You must use two resources to check which ones are offer parameters and which are product:

You can receive offer parameters by subtracting product parameters from all parameters. In the future we will introduce a new field in GET /sale/categories/{categoryID}/parameters, which will indicate whether the parameter is product ones. Thanks to this, there will be no need to call two separate resources.

If you want to set, e.g. product condition in the offer as used, extend your request with the following structure:

  ...
    "parameters": [
        {
            "id": "11323",
            "valuesIds": [
                "11323_2"
            ]
        }
    ]
  ...    

You can use parameter names and their values instead of identifiers:

  ...
    "parameters": [
            "name": "Condition",
         {
           "values": [
                "Used"
            ]
        }
    ]
  ...    

Click to view sample request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v1+json'
-H 'Accept-Language: en-US'
-H 'Content-Type: application/vnd.allegro.beta.v1+json'
-d ‘{
  "product": {
    "id": "5902719471797"
  },
  "name": "My own title",
  "parameters": [
        {
            "id": "11323",
            "valuesIds": [
                "11323_2"
            ]
        }
    ],
  "sellingMode": {
    "price": {
      "amount": "220.85",
      "currency": "PLN"
    }
  },
  "stock": {
    "available": 1
  }
}’

How to assign a selected delivery price list

You can set any delivery price list. For example - if you have delivery price list named “small dimensions” and you want to assign it to your offer, just extend your request with additional field with the price list:

  • name:

      ...
      "delivery": {
        "shippingRates": {
            "name": "small dimensions"
        }
      },
      ...    

  • or delivery price list ID:

      ...
      "delivery": {
        "shippingRates": {
            "id": "c446793c-33f0-407f-b0ed-1aeec6090a7a"
        }
      }
      ...    

Name and IDs of delivery price list can be retrieved via GET /sale/shipping-rates.

Click to view sample request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v1+json'
-H 'Accept-Language: en-US'
-H 'Content-Type: application/vnd.allegro.beta.v1+json'
-d ‘{
  "product": {
    "id": "5902719471797"
  },
  "name": "My own title",
  "parameters": [
        {
            "id": "11323",
            "valuesIds": [
                "11323_2"
            ]
        }
    ],
    "delivery": {
        "shippingRates": {
                "id": "c446793c-33f0-407f-b0ed-1aeec6090a7a"
    }
  },
  "sellingMode": {
    "price": {
      "amount": "220.85",
      "currency": "PLN"
    }
  },
  "stock": {
    "available": 1
  }
}’

How to set a different shipping time

Set value in ISO 8601 format in handlingTime field in delivery section to list an offer with a specific handling time. For example - if you want to set handling time to 2 days, you can do it in the following way:

  ...
  "delivery": {
    "handlingTime": "PT48H"
  }
  ...    

Click to view sample request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v1+json'
-H 'Accept-Language: en-US'
-H 'Content-Type: application/vnd.allegro.beta.v1+json'
-d ‘{
  "product": {
    "id": "5902719471797"
  },
  "name": "My own title",
  "parameters": [
        {
            "id": "11323",
            "valuesIds": [
                "11323_2"
            ]
        }
    ],
    "delivery": {
        "shippingRates": {
            "id": "862347c4-b2b0-42d4-b84a-1db01509a69d"
    },
        "handlingTime": "PT48H"
  },
  "sellingMode": {
    "price": {
      "amount": "220.85",
      "currency": "PLN"
    }
  },
  "stock": {
    "available": 1
  }
}’

How to add additional delivery information

Extend your request with a delivery section with additionalInfo field to include additional delivery information in your offer:

  ...
  "delivery": {
        "additionalInfo": "Additional delivery information"
   }
  ...     

Click to view sample request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v1+json'
-H 'Accept-Language: en-US'
-H 'Content-Type: application/vnd.allegro.beta.v1+json'
-d ‘{
  "product": {
    "id": "5902719471797"
  },
  "name": "My own title",
  "parameters": [
        {
            "id": "11323",
            "valuesIds": [
                "11323_2"
            ]
        }
    ],
    "delivery": {
        "shippingRates": {
            "id": "862347c4-b2b0-42d4-b84a-1db01509a69d"
        },
        "handlingTime": "PT48H",
        "additionalInfo": "Additional delivery information"
  },
  "sellingMode": {
    "price": {
      "amount": "220.85",
      "currency": "PLN"
    }
  },
      "afterSalesServices": {
          "impliedWarranty": {
                  "name": "toys"
        }
    },
  "stock": {
    "available": 1
  }
}’

How to set specific implied warranties

If you want to set different implied warranties than default, use their name or ID For example - if you have implied warranty named toys, whose ID is 913174eb-35ed-48df-b3b9-b9eb66b1b7a4 and you want to use it in your offer, you should extend your request with additional field, in which you will provide their:

  • name:

      ...
      "impliedWarranty": {
        "name": "toys"
      }
      ...    

  • or ID:

      ...
      "impliedWarranty": {
        "id": "913174eb-35ed-48df-b3b9-b9eb66b1b7a4"
      }
      ...    

Name and IDs of implied warranties list can be retrieved via GET /after-sales-service-conditions/implied-warranties.

Click to view sample request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v1+json'
-H 'Accept-Language: en-US'
-H 'Content-Type: application/vnd.allegro.beta.v1+json'
-d ‘{
  "product": {
    "id": "5902719471797"
  },
  "name": "My own title",
  "parameters": [
        {
            "id": "11323",
            "valuesIds": [
                "11323_2"
            ]
        }
    ],
    "delivery": {
        "shippingRates": {
            "id": "862347c4-b2b0-42d4-b84a-1db01509a69d"
        },
        "handlingTime": "PT48H",
        "additionalInfo": "Additional delivery information"
  },
  "sellingMode": {
    "price": {
      "amount": "220.85",
      "currency": "PLN"
    }
  },
      "afterSalesServices": {
          "impliedWarranty": {
                  "name": "toys"
        }
    },
  "stock": {
    "available": 1
  }
}’

How to set a specific return policy

If you want to set different return policy than default, use their name or ID. For example - if you have return policy named 30 days, whose ID is a375a08e-86ee-48a4-baf7-fabe01fe2631 and you want to use it in your offer, you should extend your request with additional field, in which you will provide their:

  • name:
      ...
      "returnPolicy": {
        "name": "30 days"
      }
      ...    
  • or ID:
      ...
      "returnPolicy": {
        "id": "a375a08e-86ee-48a4-baf7-fabe01fe2631"
      }
      ...    

Name and IDs of return policies list can be retrieved via GET /after-sales-service-conditions/return-policies.

Click to view sample request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v1+json'
-H 'Accept-Language: en-US'
-H 'Content-Type: application/vnd.allegro.beta.v1+json'
-d ‘{
  "product": {
    "id": "5902719471797"
  },
  "name": "My own title",
  "parameters": [
        {
            "id": "11323",
            "valuesIds": [
                "11323_2"
            ]
        }
    ],
    "delivery": {
        "shippingRates": {
            "id": "862347c4-b2b0-42d4-b84a-1db01509a69d"
        },
        "handlingTime": "PT48H",
        "additionalInfo": "Additional delivery information"
  },
  "sellingMode": {
    "price": {
      "amount": "220.85",
      "currency": "PLN"
    }
  },
      "afterSalesServices": {
        "impliedWarranty": {
            "name": "toys"
        },
        "returnPolicy": {
            "name": "30 days"
        }
    },
  "stock": {
    "available": 1
  }
}’

How to set a specific shipping location

You can set a specific shipping location, if the address is different from the address in your account settings - provide appropriate values as following:

  ...
  "location": {
    "countryCode": "PL",
    "province": "LUBUSKIE",
    "city": "Gorzów Wielkopolski",
    "postCode": "66-400"
   }
  ...    

You can find a list of available values in field location.province in our documentation.

Click to view sample request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v1+json'
-H 'Accept-Language: en-US'
-H 'Content-Type: application/vnd.allegro.beta.v1+json'
-d ‘{
  "product": {
    "id": "5902719471797"
  },
  "name": "My own title",
  "parameters": [
        {
            "id": "11323",
            "valuesIds": [
                "11323_2"
            ]
        }
    ],
    "delivery": {
        "shippingRates": {
            "id": "862347c4-b2b0-42d4-b84a-1db01509a69d"
        },
        "handlingTime": "PT48H",
        "additionalInfo": "Additional delivery information"
  },
  "sellingMode": {
    "price": {
      "amount": "220.85",
      "currency": "PLN"
    }
  },
      "afterSalesServices": {
        "impliedWarranty": {
            "name": "toys"
        },
        "returnPolicy": {
            "name": "30 days"
    }
    },
    "location": {
        "countryCode": "PL",
        "province": "LUBUSKIE",
        "city": "Gorzów Wielkopolski",
        "postCode": "66-400"
   },
  "stock": {
    "available": 1
  }
}’

How to set different invoice value

If you don’t issue a VAT invoice, or you issue another form of an invoice, you can set it using the payments.invoice field:

  ...
  "payments": {
    "invoice": "NO_INVOICE"
  }
  ...    

You can find a list of available values in field payments.invoice in our documentation.

Click to view sample request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v1+json'
-H 'Accept-Language: en-US'
-H 'Content-Type: application/vnd.allegro.beta.v1+json'
-d ‘{
    "product": {
        "id": "5902719471797"
    },
    "name": "My own title",
    "parameters": [{
        "id": "11323",
        "valuesIds": [
            "11323_2"
        ]
    }],
    "delivery": {
        "shippingRates": {
            "id": "862347c4-b2b0-42d4-b84a-1db01509a69d"
        },
        "handlingTime": "PT48H",
        "additionalInfo": "Additional delivery information"
    },
    "sellingMode": {
        "price": {
            "amount": "220.85",
            "currency": "PLN"
        }
    },
    "afterSalesServices": {
        "impliedWarranty": {
            "name": "toys"
        },
        "returnPolicy": {
            "name": "30 days"
        }
    },
    "location": {
        "countryCode": "PL",
        "province": "LUBUSKIE",
        "city": "Gorzów Wielkopolski",
        "postCode": "66-400"
    },
    "payments": {
        "invoice": "NO_INVOICE"
    },
    "stock": {
        "available": 1
    }
}’

How to create an offer draft

If you don’t want to activate the offer, extend your request with the publication section with the status field. Use “INACTIVE” value:

  ...
  "publication": {
    "status": "INACTIVE"
  }
  ...    

Click to view sample request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v1+json'
-H 'Accept-Language: en-US'
-H 'Content-Type: application/vnd.allegro.beta.v1+json’
-d ‘{
    "product": {
        "id": "5902719471797"
    },
    "name": "My own title",
    "parameters": [{
        "id": "11323",
        "valuesIds": [
            "11323_2"
        ]
    }],
    "delivery": {
        "shippingRates": {
            "id": "862347c4-b2b0-42d4-b84a-1db01509a69d"
        },
        "handlingTime": "PT48H",
        "additionalInfo": "Additional delivery information"
    },
    "sellingMode": {
        "price": {
            "amount": "220.85",
            "currency": "PLN"
        }
    },
    "afterSalesServices": {
        "impliedWarranty": {
            "name": "toys"
        },
        "returnPolicy": {
            "name": "30 days"
        }
    },
    "location": {
        "countryCode": "PL",
        "province": "LUBUSKIE",
        "city": "Gorzów Wielkopolski",
        "postCode": "66-400"
    },
    "payments": {
        "invoice": "NO_INVOICE"
    },
    "publication": {
        "status": "INACTIVE"
  },
    "stock": {
        "available": 1
    }
}’

How to add your own images

We will automatically add product photos to the offer. You can also add your own images, which present a specific copy of the product. Extend your request with additional field images:

  ...
  "images": [
    "https://...image-address.jpeg",
    "https://...image-address.jpeg"
  ]
  ...    

Images may be uploaded from external servers, you don’t have to send them to Allegro server first.. Number of photos is limited depending on the account type::

  • 16 for company account,,
  • 10 for regular account.

Click to view sample request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v1+json'
-H 'Accept-Language: en-US'
-H 'Content-Type: application/vnd.allegro.beta.v1+json'
-d ‘{
    "product": {
        "id": "5902719471797"
    },
    "name": "My own title",
    "parameters": [{
        "id": "11323",
        "valuesIds": [
            "11323_2"
        ]
    }],
    "delivery": {
        "shippingRates": {
            "id": "862347c4-b2b0-42d4-b84a-1db01509a69d"
        },
        "handlingTime": "PT48H",
        "additionalInfo": "Additional delivery information"
    },
    "sellingMode": {
        "price": {
            "amount": "220.85",
            "currency": "PLN"
        }
    },
    "afterSalesServices": {
        "impliedWarranty": {
            "name": "toys"
        },
        "returnPolicy": {
            "name": "30 days"
        }
    },
    "location": {
        "countryCode": "PL",
        "province": "LUBUSKIE",
        "city": "Gorzów Wielkopolski",
        "postCode": "66-400"
    },
    "payments": {
        "invoice": "NO_INVOICE"
    },
    "publication": {
        "status": "INACTIVE"
  },
  "images": [
    "https://...image-address.jpeg",
    "https://...image-address2.jpeg"
  ],
    "stock": {
        "available": 1
    }
}’

How to add additional description

We will automatically use product description in the offer. You can also add your own description, which applies to a specific copy of the product listed in the offer. In this case we will combine it with the product description.

Extend your request with additional field description:

  ...
  "description": {
        "sections": [
            {
                "items": [
                    {
                        "type": "TEXT",
                        "content": "<p>Sample description</p>"
                    }
                ]
            }
        ]
    }
  ...    

You can find information on how to prepare a description correctly in our guide.

Click to view sample request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v1+json'
-H 'Accept-Language: en-US'
-H 'Content-Type: application/vnd.allegro.beta.v1+json'
-d ‘{
    "product": {
        "id": "5902719471797"
    },
    "name": "My own title",
    "parameters": [{
        "id": "11323",
        "valuesIds": [
            "11323_2"
        ]
    }],
    "delivery": {
        "shippingRates": {
            "id": "862347c4-b2b0-42d4-b84a-1db01509a69d"
        },
        "handlingTime": "PT48H",
        "additionalInfo": "Additional delivery information"
    },
    "sellingMode": {
        "price": {
            "amount": "220.85",
            "currency": "PLN"
        }
    },
    "afterSalesServices": {
        "impliedWarranty": {
            "name": "toys"
        },
        "returnPolicy": {
            "name": "30 days"
        }
    },
    "location": {
        "countryCode": "PL",
        "province": "LUBUSKIE",
        "city": "Gorzów Wielkopolski",
        "postCode": "66-400"
    },
    "payments": {
        "invoice": "NO_INVOICE"
    },
    "publication": {
        "status": "INACTIVE"
    },
    "images": [
        "https://...image-address.jpeg",
        "https://...image-address2.jpeg"
    ],
    "description": {
        "sections": [{
            "items": [{
                "type": "TEXT",
                "content": "<p>Sample description</p>"
            }]
        }]
    },
    "stock": {
        "available": 1
    }
}’

How to add signature

If you want to add your own item signature to your offer, extend your request with external.id field:

  ...
  "external": {
        "id": "5AA43-2020"
   }
  ...    

Click to view sample request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v1+json'
-H 'Accept-Language: en-US'
-H 'Content-Type: application/vnd.allegro.beta.v1+json'
-d ‘{
    "product": {
        "id": "5902719471797"
    },
    "name": "My own title",
    "parameters": [{
        "id": "11323",
        "valuesIds": [
            "11323_2"
        ]
    }],
    "delivery": {
        "shippingRates": {
            "id": "862347c4-b2b0-42d4-b84a-1db01509a69d"
        },
        "handlingTime": "PT48H",
        "additionalInfo": "Additional delivery information"
    },
    "sellingMode": {
        "price": {
            "amount": "220.85",
            "currency": "PLN"
        }
    },
    "afterSalesServices": {
        "impliedWarranty": {
            "name": "toys"
        },
        "returnPolicy": {
            "name": "30 days"
        }
    },
    "location": {
        "countryCode": "PL",
        "province": "LUBUSKIE",
        "city": "Gorzów Wielkopolski",
        "postCode": "66-400"
    },
    "payments": {
        "invoice": "NO_INVOICE"
    },
    "publication": {
        "status": "INACTIVE"
    },
    "images": [
        "https://...image-address.jpeg",
        "https://...image-address2.jpeg"
    ],
    "description": {
        "sections": [{
            "items": [{
                "type": "TEXT",
                "content": "<p>Sample description</p>"
            }]
        }]
    },
    "stock": {
        "available": 1
    },
    "external": {
        "id": "5AA43-2020"
   }
}’

How to list an offer assigned to a product that is not in our database

If you can’t find a product in our database, you can list an offer, but you need to provide product data. Provided data will be used to submit product proposal. We will verify it - accepted details of provided product will be available to be assigned to an offer. Some data is accepted automatically, some manually - which may take some time.

To propose a product, you need the following data:

  • suggested product name
  • category
  • parameters and their values
  • photos
  • (optional) product description

Provide category and parameters

If you want to add a product in a selected category - use GET /sale/categories/{categoryId}/product-parameters to check required parameters. You can find more details about this resource in our guide. The *required field gives you information whether the parameter is required.

You can use names instead of parameters IDs. For parameters: - dictionary type - you can also provide name in the values field, - range type - you can provide two values in values field which will match “from” and “to”.

Below you can find various ways to provie parameters and their values:

 "product": {
  "category":{
         "id":"258020"
      },
  "parameters": [
      {
            "name": "Manufacturer Code",
            "values": [
                    "test 1587459230"
            ]
        },
        {
            "id": "202749",
            "values": [
                    "5.9"
            ]
        },
        {
            "id": "202869",
            "values": [
                    "512 GB"
            ]
        },
        {
            "id": "202829",
            "valuesIds": [
                    "202829_8374"
            ]
        },
        {
		"name": "Battery Capacity",
		"values": [
		         0, 100
		]
	   }
     ...
  ]
  ...    

The structure of the request at this stage may be as follows:

Click to view sample request:
curl -X POST
https://api.allegro.pl/sale/product-offers
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v1+json'
-H 'Accept-Language: en-US'
-H 'Content-Type: application/vnd.allegro.beta.v1+json'
-d ‘{
    "product": {
        "name":"Produkt testowy",
            "category":{
                    "id":"258020"
            },
              "parameters":[
            {
                "id": "224017",
                "values": [
                    "test 1587459230"
                ]
            },
            {
                "id": "202749",
                "values": [
                    "5.9"
                ]
            },
            {
                "id": "202869",
                "values": [
                    "512 GB"
                ]
            },
            {
                "id": "202829",
                "valuesIds": [
                    "202829_1"
                ]
            },
            {
                "id": "202685",
                "valuesIds": [
                    "202685_212929"
                ]
            },
            {
                "id": "127448",
                "valuesIds": [
                    "127448_2"
                ]
            },
            {
                "id": "202865",
                "valuesIds": [
                    "202865_214109"
                ]
            },
            {
                "id": "4388",
                "valuesIds": [
                    "4388_1"
                ]
            },
            {
                "id": "202717",
                "values": [
                    100
                ]
            },
            {
                "id": "219",
                "values": [
                    "Bluetooth"
                ]
            },
            {
                "id": "202821",
                "values": [
                    "Dual SIM"
                ]
            }
        ],
    },
    "sellingMode": {
        "price": {
            "amount": "220.85",
            "currency": "PLN"
        }
    },
    "stock": {
        "available": 1
    }
}’

Provide EAN as a parameter

Provide EAN as a parameter in the parameters section:

 "product": {
  "parameters": [
     {
         "name": "EAN",
         "values": [
             "0744861045021",
             "0744861045022"
         ]
     },
     ...
  ]
  ...    

The structure of the request at this stage may be as follows:

Use GET /sale/categories/{categoryId} to check value in productEANRequired field - it indicates whether EAN is required, when adding a product. productEANRequired.

Click to view sample request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v1+json'
-H 'Accept-Language: en-US'
-H 'Content-Type: application/vnd.allegro.beta.v1+json'
-d ‘{
  "product": {
    "name":"Test product",
    "category":{
        "id":"258020"
     },
          "parameters":[{
                "name": "EAN",
                "values": [
                    "0744861045021"
                ]
            },
            {
                "id": "224017",
                "values": [
                    "test 1587459230"
                ]
            },
            {
                "id": "202749",
                "values": [
                    "5.9"
                ]
            },
            {
                "id": "202869",
                "values": [
                    "512 GB"
                ]
            },
            {
                "id": "202829",
                "valuesIds": [
                    "202829_1"
                ]
            },
            {
                "id": "202685",
                "valuesIds": [
                    "202685_212929"
                ]
            },
            {
                "id": "127448",
                "valuesIds": [
                    "127448_2"
                ]
            },
            {
                "id": "202865",
                "valuesIds": [
                    "202865_214109"
                ]
            },
            {
                "id": "4388",
                "valuesIds": [
                    "4388_1"
                ]
            },
            {
                "id": "202717",
                "values": [
                    100
                ]
            },
            {
                "id": "219",
                "values": [
                    "Bluetooth"
                ]
            },
            {
                "id": "202821",
                "values": [
                    "Dual SIM"
                ]
            }
        ]
},
  "sellingMode": {
    "price": {
      "amount": "220.85",
      "currency": "PLN"
    }
  },
  "stock": {
    "available": 1
  }
}’

Upload photos of the product

In the images section, add images that present the product. Images may be uploaded from external servers:

 "product": {
  ...
   "images": [
    "https://...image-address.jpeg",
    "https://...image-address2.jpeg"
   ]
  ...    

Number of photos is limited depending on the account type:

  • 16 for company account,
  • 10 for regular account.

Product photos must meet the same rules as offer photos.

The structure of the request at this stage may be as follows:

Click to view sample request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v1+json'
-H 'Accept-Language: en-US'
-H 'Content-Type: application/vnd.allegro.beta.v1+json'
-d ‘{
    "product": {
        "name":"Test product",
            "category":{
                    "id":"258020"
            },
      "parameters":[{
                "name": "EAN",
                "values": [
                    "0744861045021"
                ]
            },
            {
                "id": "224017",
                "values": [
                    "test 1587459230"
                ]
            },
            {
                "id": "202749",
                "values": [
                    "5.9"
                ]
            },
            {
                "id": "202869",
                "values": [
                    "512 GB"
                ]
            },
            {
                "id": "202829",
                "valuesIds": [
                    "202829_1"
                ]
            },
            {
                "id": "202685",
                "valuesIds": [
                    "202685_212929"
                ]
            },
            {
                "id": "127448",
                "valuesIds": [
                    "127448_2"
                ]
            },
            {
                "id": "202865",
                "valuesIds": [
                    "202865_214109"
                ]
            },
            {
                "id": "4388",
                "valuesIds": [
                    "4388_1"
                ]
            },
            {
                "id": "202717",
                "values": [
                    100
                ]
            },
            {
                "id": "219",
                "values": [
                    "Bluetooth"
                ]
            },
            {
                "id": "202821",
                "values": [
                    "Dual SIM"
                ]
            }
        ],
        "images": [
            "https://...image-address.jpeg",
            "https://...image-address2.jpeg"
        ]
    },
    "sellingMode": {
        "price": {
            "amount": "220.85",
            "currency": "PLN"
        }
    },
    "stock": {
        "available": 1
    }
}'

Complete the remaining data to list an offer

To list an offer you need to complement your request with:

Click to view sample request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v1+json'
-H 'Accept-Language: en-US'
-H 'Content-Type: application/vnd.allegro.beta.v1+json'
-d ‘{
   "product":{
      "name":"Test product",
      "category":{
         "id":"258020"
      },
      "parameters":[{
                "name": "EAN",
                "values": [
                    "0744861045021"
                ]
            },
            {
                "id": "224017",
                "values": [
                    "test 1587459230"
                ]
            },
            {
                "id": "202749",
                "values": [
                    "5.9"
                ]
            },
            {
                "id": "202869",
                "values": [
                    "512 GB"
                ]
            },
            {
                "id": "202829",
                "valuesIds": [
                    "202829_1"
                ]
            },
            {
                "id": "202685",
                "valuesIds": [
                    "202685_212929"
                ]
            },
            {
                "id": "127448",
                "valuesIds": [
                    "127448_2"
                ]
            },
            {
                "id": "202865",
                "valuesIds": [
                    "202865_214109"
                ]
            },
            {
                "id": "4388",
                "valuesIds": [
                    "4388_1"
                ]
            },
            {
                "id": "202717",
                "values": [
                    100
                ]
            },
            {
                "id": "219",
                "values": [
                    "Bluetooth"
                ]
            },
            {
                "id": "202821",
                "values": [
                    "Dual SIM"
                ]
            }
        ],
      "images":[   
    "https://...image-address.jpeg",
    "https://...image-address2.jpeg"
   ]
   },
"parameters":[                                                     
      {
         "id":"11323",
         "valuesIds":[
            "11323_2"
         ]
      }
   ],
   "images": ["https://test-address.com/image.jpg"],
   "sellingMode":{
      "price":{
         "amount":"12.43",
         "currency":"PLN"
      }
   },
   "stock":{
      "available": 10
   }
}

Click to view sample response:
 
 {
    "id": "7678581025",                                         -- offer ID
    "name": "Produkt testowy",                                  -- offer name
    "product": {
        "id": "2f771572-8302-4c09-b304-391f039e3195",           -- product ID
        "publication": {
            "status": "PROPOSED"                                -- product publication status.
                                                                Available values are: PROPOSED (we created new 
                                                                product proposal and assigned it to an offer), 
                                                                LISTED (we identified the product in our 
                                                                database and assigned it to an offer), 
                                                                NOT_LISTED (we didn’t create a new product 
                                                                proposal and didn’t assign any product from our 
                                                                database to an offer, but we listed an offer 
                                                                itself)
        }
    },
    "afterSalesServices": {                                     -- offer terms                      
        "impliedWarranty": {                                    -- information on complaints
            "id": "1377b0a6-b397-4e1e-b57c-4234bd84d036"
        },
        "returnPolicy": {                                       -- information on return policy
            "id": "e261d4ed-ced7-4c10-82cd-13aa26192895"
        },
        "warranty": null                                        -- information on warranty
    },
    "payments": {
        "invoice": "VAT"                                        -- information about an invoice
    },
    "sellingMode": {                        
        "format": "BUY_NOW",                                    -- sales format
        "price": {                                              
            "amount": 12.43,                                    -- offer price
            "currency": "PLN"   
        },
        "startingPrice": null,
        "minimalPrice": null
    },
    "stock": {
        "available": 10,                                        -- number of available items
        "unit": "UNIT"
    },
    "location": {                                               -- parcel dispatch location
        "countryCode": "PL",
        "province": "WIELKOPOLSKIE",
        "city": "Poznań",
        "postCode": "60-166"
    },
    "delivery": {                                               -- information about delivery
        "shippingRates": {
            "id": "0ef455de-fc6e-4d6e-a7c8-c22aecf0b914"        -- shipping rate ID
        },
        "handlingTime": "PT24H",                                
        "additionalInfo": null                                  
    },
    "publication": {
        "duration": null,                                       
        "status": "ACTIVE",                                     
        "endedBy": null,
        "endingAt": null,
        "startingAt": null,
        "republish": false
    },
    "description": null,                                        
    "validation": {                                             
        "errors": [],
        "warnings": [],
        "validatedAt": "2020-09-22T11:44:17.995Z"
    },
    "createdAt": "2020-09-22T11:44:17Z",                        -- offer creation date
    "updatedAt": "2020-09-22T11:44:17.995Z",                    -- last offer update
    "images": [                                                 
        "https://a.allegroimg.pl/original/11d57d/542133b14781a17f11041d8a5ca4",
        "https://a.allegroimg.pl/original/111c5f/03c9534448d98d63bd6810a54512"
    ],
    "external": null                                            
}