Przejdź do treści

Wystawienie oferty

POST /sale/product-offers

Allegro + rozszerzeniaallegro:api:sale:offers:writelimit: write

Oferta w kształcie Allegro. Minimum: productSet[0].product (nazwa 10–75 znaków, kategoria-liść, wymagane parametry, ≥ 1 zdjęcie), cena, liczba sztuk, opis ≥ 20 znaków, delivery.shippingRates.id.

  • publication.status: ACTIVE publikuje od razu (wymaga GPSR: responsibleProducer + safetyInformation); brak = szkic INACTIVE.
  • Kategorię wskaż przez id (Allegro) albo alleeId; gdy podasz oba, wygrywa alleeId.
  • external.id = SKU, unikalne na koncie: drugi POST z tym samym SKU → 409 OfferDuplicate z id istniejącej oferty w details (bezpieczne ponowienie).
  • Zdjęcia pobiera allee w tle; do czasu pobrania status ACTIVATING, allee.imagesPending > 0.
  • Walidacja zwraca wszystkie błędy naraz (422).
  • allee: ?validateOnly=true sprawdza ofertę bez zapisu (200 ValidationResult); nagłówek Idempotency-Key chroni przed dublem po zerwanym połączeniu.

Zawsze 201 z pełnym obiektem (allee nie odpowiada 202).

Zgodność: zgodna z Allegro REST API, z rozszerzeniami allee (pola allee.*, alleeId) — POST /sale/product-offers.
Uprawnienie: zakres allegro:api:sale:offers:write.
Grupa limitu: write.

Parametry zapytania

validateOnly boolean

true = tylko walidacja, bez zapisu (rozszerzenie allee).

Nagłówki

Idempotency-Key string

Ochrona przed podwójnym wykonaniem (jak Stripe/Amazon): powtórzony POST z tym samym kluczem i tą samą treścią w ciągu 24 h zwraca zapisaną odpowiedź z nagłówkiem Idempotent-Replayed: true i niczego nie wykonuje drugi raz. Inna treść → 422 IDEMPOTENCY_KEY_REUSED; żądanie jeszcze trwa → 409 IDEMPOTENCY_KEY_IN_USE. 1–100 znaków ASCII (np. UUID).

Treść żądania application/vnd.allegro.public.v1+json

productSet array<object> wymagane

Dokładnie 1 element.

Pola obiektu
product object wymagane
Pola obiektu
name string

Tytuł: 10–75 znaków, żadne słowo dłuższe niż 30 znaków.

category object
Pola obiektu
id string

Id kategorii Allegro.

alleeId integer|string

Id allee — gdy podano oba, wygrywa alleeId.

parameters array<OfferParameterInput>
Pola obiektu
id string

Id parametru Allegro.

alleeId integer|string

Id parametru allee.

name string

Albo nazwa parametru w kategorii (bez względu na wielkość liter).

valuesIds array<string>
alleeValuesIds array<integer|string>
values array<string|number>

Tekst (słownik dopasowywany bez względu na wielkość liter), liczba albo tekst.

rangeValue any

Nieobsługiwane → 422 ConstraintViolationException.RangeValueNotSupported.

images array<string · uri | object>

1–16 adresów https: lista tekstów albo obiektów {url} (jak w odczycie Allegro).

id string

Karta produktu Allegro — pomijana; samo id bez danych → 422 CATALOG_PRODUCT_NOT_SUPPORTED.

responsibleProducer object · null
Pola obiektu
type string wymagane
Wartości: ID
id string · uuid wymagane
responsiblePerson IdRef · null
Pola obiektu
id string wymagane
safetyInformation SafetyInformation · null
Pola obiektu
type string wymagane
Wartości: TEXT, NO_SAFETY_INFORMATION, ATTACHMENTS
description string

Treść informacji (dla TEXT).

parameters array<OfferParameterInput>

Parametry oferty (Stan 11323 — przyjmowany w każdej kategorii).

Pola obiektu
id string

Id parametru Allegro.

alleeId integer|string

Id parametru allee.

name string

Albo nazwa parametru w kategorii (bez względu na wielkość liter).

valuesIds array<string>
alleeValuesIds array<integer|string>
values array<string|number>

Tekst (słownik dopasowywany bez względu na wielkość liter), liczba albo tekst.

rangeValue any

Nieobsługiwane → 422 ConstraintViolationException.RangeValueNotSupported.

sellingMode object

Cena wymagana: 1,00–10 000 000,00 zł.

Pola obiektu
format string
Wartości: BUY_NOW
price MoneyInput

Kwota w żądaniu.

Pola obiektu
amount string|number wymagane

Kwota jako tekst „123.45” (zalecane) albo liczba.

currency string

Waluta: tylko PLN (domyślnie PLN).

Wartości: PLN
stock object
Pola obiektu
available integer|string

0–99 999 (przy POST co najmniej 1).

unit string
Wartości: UNIT
external object · null
Pola obiektu
id string|integer

SKU (do 100 znaków), unikalne na koncie — dubel → 409 OfferDuplicate.

description OfferDescription

Opis w sekcjach Allegro. allee zapisuje go jako tekst (znaczniki formatowania, skrypty i style znikają); odczyt zwraca jedną sekcję TEXT z odtworzonym prostym HTML: akapity <p> i <br>, a nagłówek tuż przed listą wraca jako <h2> + <ul><li>. Nie porównuj opisu 1:1 z wysłanym.

Pola obiektu
sections array<object> wymagane
Pola obiektu
items array<object> wymagane
Pola obiektu
type string wymagane
Wartości: TEXT, IMAGE
content string

HTML (TEXT).

url string

Adres obrazka (IMAGE — pomijany).

publication object
Pola obiektu
status string

Tylko w POST; brak = INACTIVE (szkic).

Wartości: ACTIVE, INACTIVE
delivery object
Pola obiektu
handlingTime string · null

Czas ISO 8601 do 60 dni, np. PT24H, P3D, PT72H (jak w odczycie Allegro). Zapisywany jako jedna z wartości PT0S, PT24H, P2D, P3D, P4D, P5D, P7D, P10D, P14D, P21D, P30D, P60D; wartość pośrednia — w górę, z ostrzeżeniem w validation.warnings.

shippingRates IdRef · null

Twój cennik — wymagany w POST.

Pola obiektu
id string wymagane
additionalInfo any

Bez skutku.

shipmentDate any

Bez skutku.

afterSalesServices object
Pola obiektu
returnPolicy IdRef · null
Pola obiektu
id string wymagane
warranty IdRef · null
Pola obiektu
id string wymagane
impliedWarranty IdRef · null
Pola obiektu
id string wymagane
taxSettings object · null
Pola obiektu
rates array<object> wymagane
Pola obiektu
rate string wymagane

Tekst, nie liczba.

Wartości: 0.00, 5.00, 8.00, 23.00
countryCode string
payments object
Pola obiektu
invoice string · null
Wartości: VAT, VAT_MARGIN, WITHOUT_VAT, NO_INVOICE, null
location object · null

Do 300 znaków JSON.

images array<string>

Alternatywnie zdjęcia na wierzchu.

category object

Alternatywnie kategoria na wierzchu.

Pola obiektu
id string
alleeId integer|string
name string

Tytuł oferty (jak Allegro) — w POST i PATCH; ma pierwszeństwo przed productSet[0].product.name.

id any

Tylko do odczytu — pomijane.

validation any

Tylko do odczytu — pomijane.

warnings any

Tylko do odczytu — pomijane.

createdAt any

Tylko do odczytu — pomijane.

updatedAt any

Tylko do odczytu — pomijane.

aiCoCreatedContent any

Tylko do odczytu — pomijane.

allee any

Tylko do odczytu — pomijane.

language any

Przyjmowane bez skutku.

additionalMarketplaces any

Bez skutku.

b2b any

Bez skutku.

discounts any

Bez skutku.

compatibilityList any

Bez skutku.

tecdocSpecification any

Bez skutku.

contact any

Bez skutku.

messageToSellerSettings any

Bez skutku.

attachments any

Bez skutku.

fundraisingCampaign any

Bez skutku.

additionalServices any

Bez skutku.

sizeTable any

Bez skutku.

promotion any

Bez skutku.

Odpowiedzi

200 Wynik validateOnly=true (nic nie zapisano). · ValidationResult
validateOnly boolean zawsze

Odpowiedź podglądu — nic nie zapisano.

Wartości: true
status string zawsze
Wartości: VALID, INVALID
issues array<ListingIssue> zawsze
Pola obiektu
code string zawsze

Kod problemu (ten sam słownik co błędy walidacji oferty).

message string zawsze
severity string zawsze

ERROR blokuje zapis/publikację, WARNING nie blokuje.

Wartości: ERROR, WARNING, INFO
attributeNames array<string> zawsze

Atrybuty, których dotyczy problem.

categories array<string> zawsze

Grupy problemu, np. MISSING_ATTRIBUTE, INVALID_ATTRIBUTE, GPSR.

path string · null

Pole w kształcie Allegro (np. productSet[0].product.parameters).

messageId integer

Numer komunikatu wsadu (tylko w raporcie wsadu).

errors array<Error>

Przy INVALID: te same błędy co przy prawdziwym zapisie.

Pola obiektu
code string zawsze

Kod maszynowy błędu — na nim opieraj obsługę (lista: przewodnik „Błędy”).

message string zawsze

Opis dla programisty (po polsku).

details any zawsze

Dane dodatkowe albo null — np. id istniejącej oferty przy OfferDuplicate, {"current": "SENT"} przy błędzie statusu, {"retryAfterMs": 1200} przy limicie.

path string · null zawsze

Pole żądania, którego dotyczy błąd, np. productSet[0].product.parameters.

userMessage string zawsze

Komunikat, który można pokazać sprzedawcy.

201 Utworzono (pełny obiekt; adres oferty: GET /sale/product-offers/{id} z pola id). · ProductOffer
id string zawsze

Identyfikator oferty.

name string zawsze

Tytuł oferty.

category CategoryRef zawsze

Kategoria — oba identyfikatory.

Pola obiektu
id string · null zawsze

Identyfikator kategorii Allegro (bywa liczbą, bywa UUID).

alleeId integer zawsze

Identyfikator kategorii allee.

productSet array<object> zawsze

Zawsze dokładnie 1 element.

Pola obiektu
product object zawsze
Pola obiektu
name string zawsze
category CategoryRef zawsze

Kategoria — oba identyfikatory.

Pola obiektu
id string · null zawsze

Identyfikator kategorii Allegro (bywa liczbą, bywa UUID).

alleeId integer zawsze

Identyfikator kategorii allee.

parameters array<OfferParameter> zawsze

Parametry produktu (bez Stanu).

Pola obiektu
id string zawsze

Identyfikator parametru Allegro.

alleeId integer zawsze
name string zawsze
valuesIds array<string> zawsze

Identyfikatory wartości słownika Allegro (puste dla parametrów liczbowych/tekstowych).

alleeValuesIds array<integer>

Identyfikatory wartości allee (tylko słownikowe).

values array<string> zawsze

Wartości tekstowo.

rangeValue any · null zawsze

Zawsze null (zakresy nieobsługiwane).

images array<string · uri> zawsze

Zdjęcia po przetworzeniu (cdn.allee.pl, WebP 1200 px).

responsibleProducer object · null zawsze

Producent GPSR.

Pola obiektu
type string zawsze
Wartości: ID
id string · uuid zawsze
responsiblePerson IdRef · null zawsze

Osoba odpowiedzialna GPSR.

Pola obiektu
id string zawsze
safetyInformation SafetyInformation · null zawsze
Pola obiektu
type string zawsze
Wartości: TEXT, NO_SAFETY_INFORMATION, ATTACHMENTS
description string

Treść informacji (dla TEXT).

parameters array<OfferParameter> zawsze

Parametry oferty — tu jest Stan (11323).

Pola obiektu
id string zawsze

Identyfikator parametru Allegro.

alleeId integer zawsze
name string zawsze
valuesIds array<string> zawsze

Identyfikatory wartości słownika Allegro (puste dla parametrów liczbowych/tekstowych).

alleeValuesIds array<integer>

Identyfikatory wartości allee (tylko słownikowe).

values array<string> zawsze

Wartości tekstowo.

rangeValue any · null zawsze

Zawsze null (zakresy nieobsługiwane).

sellingMode object zawsze
Pola obiektu
format string zawsze

Oferty przez API: BUY_NOW (licytacje tylko z panelu).

Wartości: BUY_NOW, AUCTION
price Money zawsze

Kwota (kształt Allegro).

Pola obiektu
amount string zawsze

Kwota z dwoma miejscami po przecinku, kropka dziesiętna.

currency string zawsze

Waluta (allee.pl: tylko PLN).

Wartości: PLN
stock object zawsze
Pola obiektu
available integer zawsze

Dostępne sztuki (0–99 999).

unit string zawsze
Wartości: UNIT
publication object zawsze
Pola obiektu
status PublicationStatus zawsze

INACTIVE = szkic, ACTIVATING = czeka na zdjęcia, ACTIVE = widoczna i kupowalna, ENDED = zakończona.

Wartości: INACTIVE, ACTIVATING, ACTIVE, ENDED
endedBy string · null zawsze

Kto zakończył (tylko przy ENDED).

Wartości: USER, EMPTY_STOCK, ADMIN, EXPIRATION, null
external object · null zawsze
Pola obiektu
id string zawsze

SKU sprzedawcy (unikalne na koncie).

delivery object zawsze
Pola obiektu
handlingTime string · null zawsze

Czas wysyłki.

Wartości: PT0S, PT24H, P2D, P3D, P4D, P5D, P7D, P10D, P14D, P21D, P30D, P60D, null
shippingRates IdRef · null zawsze

Cennik dostawy.

Pola obiektu
id string zawsze
afterSalesServices object zawsze
Pola obiektu
returnPolicy IdRef · null zawsze
Pola obiektu
id string zawsze
warranty IdRef · null zawsze
Pola obiektu
id string zawsze
impliedWarranty IdRef · null zawsze
Pola obiektu
id string zawsze
taxSettings object · null zawsze

Stawka VAT.

Pola obiektu
rates array<object> zawsze
Pola obiektu
rate string zawsze
Wartości: 0.00, 5.00, 8.00, 23.00
countryCode string zawsze
Wartości: PL
payments object zawsze
Pola obiektu
invoice string · null zawsze

Rodzaj dokumentu sprzedaży.

Wartości: VAT, VAT_MARGIN, WITHOUT_VAT, NO_INVOICE, null
images array<string · uri> zawsze

To samo co productSet[0].product.images.

description OfferDescription zawsze

Opis w sekcjach Allegro. allee zapisuje go jako tekst (znaczniki formatowania, skrypty i style znikają); odczyt zwraca jedną sekcję TEXT z odtworzonym prostym HTML: akapity <p> i <br>, a nagłówek tuż przed listą wraca jako <h2> + <ul><li>. Nie porównuj opisu 1:1 z wysłanym.

Pola obiektu
sections array<object> zawsze
Pola obiektu
items array<object> zawsze
Pola obiektu
type string zawsze
Wartości: TEXT, IMAGE
content string

HTML (TEXT).

url string

Adres obrazka (IMAGE — pomijany).

location object · null zawsze

Lokalizacja (zapisana 1:1, zwykle city, countryCode, postCode, province).

validation object zawsze
Pola obiektu
errors array<Error> zawsze

Prawdziwe problemy oferty, np. nieudane zdjęcia; puste = brak problemów.

Pola obiektu
code string zawsze

Kod maszynowy błędu — na nim opieraj obsługę (lista: przewodnik „Błędy”).

message string zawsze

Opis dla programisty (po polsku).

details any zawsze

Dane dodatkowe albo null — np. id istniejącej oferty przy OfferDuplicate, {"current": "SENT"} przy błędzie statusu, {"retryAfterMs": 1200} przy limicie.

path string · null zawsze

Pole żądania, którego dotyczy błąd, np. productSet[0].product.parameters.

userMessage string zawsze

Komunikat, który można pokazać sprzedawcy.

warnings array<Error> zawsze

Tylko w odpowiedzi POST/PATCH: co allee dopasowało zamiast odrzucić (np. czas wysyłki zaokrąglony w górę, parametr jednowartościowy obcięty do pierwszej wartości). W GET puste.

Pola obiektu
code string zawsze

Kod maszynowy błędu — na nim opieraj obsługę (lista: przewodnik „Błędy”).

message string zawsze

Opis dla programisty (po polsku).

details any zawsze

Dane dodatkowe albo null — np. id istniejącej oferty przy OfferDuplicate, {"current": "SENT"} przy błędzie statusu, {"retryAfterMs": 1200} przy limicie.

path string · null zawsze

Pole żądania, którego dotyczy błąd, np. productSet[0].product.parameters.

userMessage string zawsze

Komunikat, który można pokazać sprzedawcy.

createdAt string · date-time zawsze
updatedAt string · date-time zawsze
allee object zawsze

Rozszerzenie allee.

Pola obiektu
url string · uri zawsze

Adres oferty na allee.pl.

endedReason string · null zawsze

Powód zakończenia nadany przez allee (np. R2 = 0 sztuk).

imagesPending integer zawsze

Zdjęcia czekające na pobranie przez allee.

categorySource string

Tylko w odpowiedzi POST: która kategoria została użyta.

Wartości: allegro, allee, allee (podano obie — allee ma pierwszeństwo)

Błędy

HTTPKodZnaczenie
401invalid_tokenBrak, zły, wygasły albo odwołany token lub klucz (format OAuth, nagłówek WWW-Authenticate).
403ACCOUNT_INACTIVEKonto sprzedawcy jest nieaktywne.
403AccessDeniedBrak zakresu albo zasób innego sprzedawcy.
403KEY_QUARANTINEDKwarantanna: działa tylko odczyt (wykryto nietypowe użycie).
403KEY_SUSPENDEDKlucz albo dostęp aplikacji wstrzymany (przez sprzedawcę albo ochronę).
409OfferDuplicateOferta z tym external.id (SKU) już istnieje — details = jej id.
413PAYLOAD_TOO_LARGETreść żądania za duża (JSON 5 MB, faktura PDF 3 MB).
415UNSUPPORTED_MEDIA_TYPEZły Content-Type treści.
422ATTACHMENTS_NOT_SUPPORTEDallee nie przyjmuje załączników w wiadomościach.
422CATALOG_PRODUCT_NOT_SUPPORTEDSama karta produktu Allegro bez danych.
422CATEGORY_NOT_FOUNDNie ma takiej kategorii.
422CATEGORY_NOT_LEAFKategoria nie jest liściem.
422ConstraintViolationException.MissingRequiredParametersBrak wymaganego parametru lub pola (details = id parametru).
422ConstraintViolationException.RangeValueNotSupportedrangeValue nieobsługiwane.
422ConstraintViolationException.TooManyValuesKilka wartości przy multipleChoices: false.
422DictionaryParameterValueNotFoundWartość spoza słownika kategorii (albo Stan nieobsługiwany przez allee).
422IMAGE_DOWNLOAD_FAILEDAdres zdjęcia niedozwolony albo nie da się go pobrać (path = które zdjęcie).
422INVALID_QUANTITYLiczba sztuk poza zakresem.
422JsonMappingExceptionTreść nie jest poprawnym JSON albo ma zły kształt (np. images jako obiekty).
422ParameterCategoryExceptionParametr nie należy do kategorii.
422RESPONSIBLE_PRODUCER_NOT_SPECIFIEDPublikacja bez producenta GPSR.
422SAFETY_INFO_NOT_DEFINEDPublikacja bez informacji o bezpieczeństwie (GPSR).
422UnknownJSONPropertyPole nieznane w tym miejscu (path wskazuje które).
422VALIDATION_ERRORZła wartość parametru zapytania (400) albo pola treści (422); path wskazuje miejsce.
429TOO_MANY_REQUESTSPrzekroczony limit (minutowy, grupy operacji albo IP).
500INTERNAL_ERRORBłąd serwera allee.
Wystawienie oferty od razu aktywnej
curl -sS -X POST "${ALLEE_API_URL:-https://api.allee.pl}/sale/product-offers" \
  -H "Authorization: Bearer $ALLEE_API_KEY" \
  -H "Accept: application/vnd.allegro.public.v1+json" \
  -H "Idempotency-Key: oferta-FILM-21ef85-1" \
  -H "Content-Type: application/vnd.allegro.public.v1+json" \
  --data-binary @- \
  -w '\nHTTP %{http_code}\n' <<'JSON'
{
  "productSet": [
    {
      "product": {
        "name": "Podróż na Księżyc DVD wydanie kolekcjonerskie",
        "category": {
          "id": "20585"
        },
        "parameters": [
          {
            "id": "225693",
            "values": [
              "5901234123457"
            ]
          },
          {
            "id": "237218",
            "values": [
              "Podróż na Księżyc"
            ]
          },
          {
            "id": "246845",
            "valuesIds": [
              "246845_622165"
            ]
          },
          {
            "id": "250077",
            "valuesIds": [
              "250077_1797493"
            ]
          }
        ],
        "images": [
          "https://cdn.allee.pl/img/a/webe/1930/10001318-0-1200.webp"
        ]
      },
      "responsibleProducer": {
        "type": "ID",
        "id": "472bad66-e704-4344-a2d6-9bd85b1f9a5e"
      },
      "safetyInformation": {
        "type": "TEXT",
        "description": "Produkt bezpieczny w normalnym użytkowaniu. Przechowywać z dala od źródeł ciepła."
      }
    }
  ],
  "parameters": [
    {
      "id": "11323",
      "valuesIds": [
        "11323_1"
      ]
    }
  ],
  "sellingMode": {
    "format": "BUY_NOW",
    "price": {
      "amount": "49.90",
      "currency": "PLN"
    }
  },
  "stock": {
    "available": 10,
    "unit": "UNIT"
  },
  "external": {
    "id": "FILM-21ef85-1"
  },
  "description": {
    "sections": [
      {
        "items": [
          {
            "type": "TEXT",
            "content": "<h2>Opis</h2><p>Film na płycie DVD, wydanie kolekcjonerskie, nowy w folii.</p><ul><li>Region 2</li><li>Język: polski</li></ul>"
          }
        ]
      }
    ]
  },
  "delivery": {
    "handlingTime": "PT24H",
    "shippingRates": {
      "id": "797d2e65-cb23-4a16-98e9-d6f2a399839a"
    }
  },
  "afterSalesServices": {
    "returnPolicy": {
      "id": "0d2fcf15-119d-479c-9d97-ba1794013def"
    },
    "impliedWarranty": {
      "id": "d82f8496-f284-4cdf-9575-242222870c5f"
    }
  },
  "taxSettings": {
    "rates": [
      {
        "rate": "23.00",
        "countryCode": "PL"
      }
    ]
  },
  "payments": {
    "invoice": "VAT"
  },
  "location": {
    "city": "Warszawa",
    "countryCode": "PL",
    "postCode": "00-001",
    "province": "MAZOWIECKIE"
  },
  "publication": {
    "status": "ACTIVE"
  }
}
JSON
Odpowiedź (środowisko testowe)
HTTP 201 application/vnd.allegro.public.v1+json
{
  "id": "900000000000021",
  "name": "Podróż na Księżyc DVD wydanie kolekcjonerskie",
  "category": {
    "id": "20585",
    "alleeId": 35
  },
  "productSet": [
    {
      "product": {
        "name": "Podróż na Księżyc DVD wydanie kolekcjonerskie",
        "category": {
          "id": "20585",
          "alleeId": 35
        },
        "parameters": [
          {
            "id": "246845",
            "alleeId": 8973,
            "name": "Nośnik",
            "valuesIds": [
              "246845_622165"
            ],
            "alleeValuesIds": [
              79216
            ],
            "values": [
              "płyta DVD"
            ],
            "rangeValue": null
          },
          {
            "id": "250077",
            "alleeId": 10923,
            "name": "Gatunek",
            "valuesIds": [
              "250077_1797493"
            ],
            "alleeValuesIds": [
              258674
            ],
            "values": [
              "anime"
            ],
            "rangeValue": null
          },
          {
            "id": "225693",
            "alleeId": 5967,
            "name": "EAN (GTIN)",
            "valuesIds": [],
            "values": [
              "5901234123457"
            ],
            "rangeValue": null
          },
          {
            "id": "237218",
            "alleeId": 7939,
            "name": "Tytuł",
            "valuesIds": [],
            "values": [
              "Podróż na Księżyc"
            ],
            "rangeValue": null
          }
        ],
        "images": [
          "https://cdn.allee.pl/img/sandbox/9a16623650ab051ba0d7-1200.webp"
        ]
      },
      "responsibleProducer": {
        "type": "ID",
        "id": "472bad66-e704-4344-a2d6-9bd85b1f9a5e"
      },
      "responsiblePerson": null,
      "safetyInformation": {
        "type": "TEXT",
        "description": "Produkt bezpieczny w normalnym użytkowaniu. Przechowywać z dala od źródeł ciepła."
      }
    }
  ],
  "parameters": [
    {
      "id": "11323",
      "alleeId": 669,
      "name": "Stan",
      "valuesIds": [
        "11323_1"
      ],
      "alleeValuesIds": [
        6386
      ],
      "values": [
        "Nowy"
      ],
      "rangeValue": null
    }
  ],
  "sellingMode": {
    "format": "BUY_NOW",
    "price": {
      "amount": "49.90",
      "currency": "PLN"
    }
  },
  "stock": {
    "available": 10,
    "unit": "UNIT"
  },
  "publication": {
    "status": "ACTIVE",
    "endedBy": null
  },
  "external": {
    "id": "FILM-21ef85-1"
  },
  "delivery": {
    "handlingTime": "PT24H",
    "shippingRates": {
      "id": "797d2e65-cb23-4a16-98e9-d6f2a399839a"
    }
  },
  "afterSalesServices": {
    "returnPolicy": {
      "id": "0d2fcf15-119d-479c-9d97-ba1794013def"
    },
    "warranty": null,
    "impliedWarranty": {
      "id": "d82f8496-f284-4cdf-9575-242222870c5f"
    }
  },
  "taxSettings": {
    "rates": [
      {
        "rate": "23.00",
        "countryCode": "PL"
      }
    ]
  },
  "payments": {
    "invoice": "VAT"
  },
  "images": [
    "https://cdn.allee.pl/img/sandbox/9a16623650ab051ba0d7-1200.webp"
  ],
  "description": {
    "sections": [
      {
        "items": [
          {
            "type": "TEXT",
            "content": "<p>Opis</p><p>Film na płycie DVD, wydanie kolekcjonerskie, nowy w folii.</p><p>• Region 2<br>• Język: polski</p>"
          }
        ]
      }
    ]
  },
  "location": {
    "city": "Warszawa",
    "countryCode": "PL",
    "postCode": "00-001",
    "province": "MAZOWIECKIE"
  },
  "validation": {
    "errors": [],
    "warnings": []
  },
  "createdAt": "2026-11-10T11:10:03.000Z",
  "updatedAt": "2026-11-10T11:10:03.000Z",
  "allee": {
    "url": "https://allee.pl/oferta/podroz-na-ksiezyc-dvd-wydanie-kolekcjonerskie-900000000000021",
    "endedReason": null,
    "imagesPending": 0,
    "categorySource": "allegro"
  }
}
Przykład: Sprawdzenie oferty bez zapisu (validateOnly=true)
curl -sS -X POST "${ALLEE_API_URL:-https://api.allee.pl}/sale/product-offers?validateOnly=true" \
  -H "Authorization: Bearer $ALLEE_API_KEY" \
  -H "Accept: application/vnd.allegro.public.v1+json" \
  -H "Content-Type: application/vnd.allegro.public.v1+json" \
  --data-binary @- \
  -w '\nHTTP %{http_code}\n' <<'JSON'
{
  "productSet": [
    {
      "product": {
        "name": "Podróż na Księżyc DVD wydanie kolekcjonerskie",
        "category": {
          "id": "20585"
        },
        "parameters": [
          {
            "id": "225693",
            "values": [
              "5901234123457"
            ]
          },
          {
            "id": "237218",
            "values": [
              "Podróż na Księżyc"
            ]
          },
          {
            "id": "246845",
            "valuesIds": [
              "246845_622165"
            ]
          },
          {
            "id": "250077",
            "valuesIds": [
              "250077_1797493"
            ]
          }
        ],
        "images": [
          "https://cdn.allee.pl/img/a/webe/1930/10001318-0-1200.webp"
        ]
      },
      "responsibleProducer": {
        "type": "ID",
        "id": "472bad66-e704-4344-a2d6-9bd85b1f9a5e"
      },
      "safetyInformation": {
        "type": "TEXT",
        "description": "Produkt bezpieczny w normalnym użytkowaniu. Przechowywać z dala od źródeł ciepła."
      }
    }
  ],
  "parameters": [
    {
      "id": "11323",
      "valuesIds": [
        "11323_1"
      ]
    }
  ],
  "sellingMode": {
    "format": "BUY_NOW",
    "price": {
      "amount": "49.90",
      "currency": "PLN"
    }
  },
  "stock": {
    "available": 10,
    "unit": "UNIT"
  },
  "external": {
    "id": "FILM-21ef85-1"
  },
  "description": {
    "sections": [
      {
        "items": [
          {
            "type": "TEXT",
            "content": "<h2>Opis</h2><p>Film na płycie DVD, wydanie kolekcjonerskie, nowy w folii.</p><ul><li>Region 2</li><li>Język: polski</li></ul>"
          }
        ]
      }
    ]
  },
  "delivery": {
    "handlingTime": "PT24H",
    "shippingRates": {
      "id": "797d2e65-cb23-4a16-98e9-d6f2a399839a"
    }
  },
  "afterSalesServices": {
    "returnPolicy": {
      "id": "0d2fcf15-119d-479c-9d97-ba1794013def"
    },
    "impliedWarranty": {
      "id": "d82f8496-f284-4cdf-9575-242222870c5f"
    }
  },
  "taxSettings": {
    "rates": [
      {
        "rate": "23.00",
        "countryCode": "PL"
      }
    ]
  },
  "payments": {
    "invoice": "VAT"
  },
  "location": {
    "city": "Warszawa",
    "countryCode": "PL",
    "postCode": "00-001",
    "province": "MAZOWIECKIE"
  },
  "publication": {
    "status": "ACTIVE"
  }
}
JSON
HTTP 200 application/vnd.allegro.public.v1+json
{
  "validateOnly": true,
  "status": "VALID",
  "issues": []
}
Przykład: Szkic oferty (INACTIVE)
curl -sS -X POST "${ALLEE_API_URL:-https://api.allee.pl}/sale/product-offers" \
  -H "Authorization: Bearer $ALLEE_API_KEY" \
  -H "Accept: application/vnd.allegro.public.v1+json" \
  -H "Content-Type: application/vnd.allegro.public.v1+json" \
  --data-binary @- \
  -w '\nHTTP %{http_code}\n' <<'JSON'
{
  "productSet": [
    {
      "product": {
        "name": "Metropolis DVD wydanie odrestaurowane",
        "category": {
          "id": "20585"
        },
        "parameters": [
          {
            "id": "225693",
            "values": [
              "5901234123457"
            ]
          },
          {
            "id": "237218",
            "values": [
              "Podróż na Księżyc"
            ]
          },
          {
            "id": "246845",
            "valuesIds": [
              "246845_622165"
            ]
          },
          {
            "id": "250077",
            "valuesIds": [
              "250077_1797493"
            ]
          }
        ],
        "images": [
          "https://cdn.allee.pl/img/a/webe/1930/10001318-0-1200.webp"
        ]
      },
      "responsibleProducer": {
        "type": "ID",
        "id": "472bad66-e704-4344-a2d6-9bd85b1f9a5e"
      },
      "safetyInformation": {
        "type": "TEXT",
        "description": "Produkt bezpieczny w normalnym użytkowaniu. Przechowywać z dala od źródeł ciepła."
      }
    }
  ],
  "parameters": [
    {
      "id": "11323",
      "valuesIds": [
        "11323_1"
      ]
    }
  ],
  "sellingMode": {
    "format": "BUY_NOW",
    "price": {
      "amount": "49.90",
      "currency": "PLN"
    }
  },
  "stock": {
    "available": 10,
    "unit": "UNIT"
  },
  "external": {
    "id": "FILM-21ef85-2"
  },
  "description": {
    "sections": [
      {
        "items": [
          {
            "type": "TEXT",
            "content": "<h2>Opis</h2><p>Film na płycie DVD, wydanie kolekcjonerskie, nowy w folii.</p><ul><li>Region 2</li><li>Język: polski</li></ul>"
          }
        ]
      }
    ]
  },
  "delivery": {
    "handlingTime": "PT24H",
    "shippingRates": {
      "id": "797d2e65-cb23-4a16-98e9-d6f2a399839a"
    }
  },
  "afterSalesServices": {
    "returnPolicy": {
      "id": "0d2fcf15-119d-479c-9d97-ba1794013def"
    },
    "impliedWarranty": {
      "id": "d82f8496-f284-4cdf-9575-242222870c5f"
    }
  },
  "taxSettings": {
    "rates": [
      {
        "rate": "23.00",
        "countryCode": "PL"
      }
    ]
  },
  "payments": {
    "invoice": "VAT"
  },
  "location": {
    "city": "Warszawa",
    "countryCode": "PL",
    "postCode": "00-001",
    "province": "MAZOWIECKIE"
  },
  "publication": {
    "status": "INACTIVE"
  }
}
JSON
HTTP 201 application/vnd.allegro.public.v1+json
{
  "id": "900000000000022",
  "name": "Metropolis DVD wydanie odrestaurowane",
  "category": {
    "id": "20585",
    "alleeId": 35
  },
  "productSet": [
    {
      "product": {
        "name": "Metropolis DVD wydanie odrestaurowane",
        "category": {
          "id": "20585",
          "alleeId": 35
        },
        "parameters": [
          {
            "id": "246845",
            "alleeId": 8973,
            "name": "Nośnik",
            "valuesIds": [
              "246845_622165"
            ],
            "alleeValuesIds": [
              79216
            ],
            "values": [
              "płyta DVD"
            ],
            "rangeValue": null
          },
          {
            "id": "250077",
            "alleeId": 10923,
            "name": "Gatunek",
            "valuesIds": [
              "250077_1797493"
            ],
            "alleeValuesIds": [
              258674
            ],
            "values": [
              "anime"
            ],
            "rangeValue": null
          },
          {
            "id": "225693",
            "alleeId": 5967,
            "name": "EAN (GTIN)",
            "valuesIds": [],
            "values": [
              "5901234123457"
            ],
            "rangeValue": null
          },
          {
            "id": "237218",
            "alleeId": 7939,
            "name": "Tytuł",
            "valuesIds": [],
            "values": [
              "Podróż na Księżyc"
            ],
            "rangeValue": null
          }
        ],
        "images": [
          "https://cdn.allee.pl/img/sandbox/9a16623650ab051ba0d7-1200.webp"
        ]
      },
      "responsibleProducer": {
        "type": "ID",
        "id": "472bad66-e704-4344-a2d6-9bd85b1f9a5e"
      },
      "responsiblePerson": null,
      "safetyInformation": {
        "type": "TEXT",
        "description": "Produkt bezpieczny w normalnym użytkowaniu. Przechowywać z dala od źródeł ciepła."
      }
    }
  ],
  "parameters": [
    {
      "id": "11323",
      "alleeId": 669,
      "name": "Stan",
      "valuesIds": [
        "11323_1"
      ],
      "alleeValuesIds": [
        6386
      ],
      "values": [
        "Nowy"
      ],
      "rangeValue": null
    }
  ],
  "sellingMode": {
    "format": "BUY_NOW",
    "price": {
      "amount": "49.90",
      "currency": "PLN"
    }
  },
  "stock": {
    "available": 10,
    "unit": "UNIT"
  },
  "publication": {
    "status": "INACTIVE",
    "endedBy": null
  },
  "external": {
    "id": "FILM-21ef85-2"
  },
  "delivery": {
    "handlingTime": "PT24H",
    "shippingRates": {
      "id": "797d2e65-cb23-4a16-98e9-d6f2a399839a"
    }
  },
  "afterSalesServices": {
    "returnPolicy": {
      "id": "0d2fcf15-119d-479c-9d97-ba1794013def"
    },
    "warranty": null,
    "impliedWarranty": {
      "id": "d82f8496-f284-4cdf-9575-242222870c5f"
    }
  },
  "taxSettings": {
    "rates": [
      {
        "rate": "23.00",
        "countryCode": "PL"
      }
    ]
  },
  "payments": {
    "invoice": "VAT"
  },
  "images": [
    "https://cdn.allee.pl/img/sandbox/9a16623650ab051ba0d7-1200.webp"
  ],
  "description": {
    "sections": [
      {
        "items": [
          {
            "type": "TEXT",
            "content": "<p>Opis</p><p>Film na płycie DVD, wydanie kolekcjonerskie, nowy w folii.</p><p>• Region 2<br>• Język: polski</p>"
          }
        ]
      }
    ]
  },
  "location": {
    "city": "Warszawa",
    "countryCode": "PL",
    "postCode": "00-001",
    "province": "MAZOWIECKIE"
  },
  "validation": {
    "errors": [],
    "warnings": []
  },
  "createdAt": "2026-11-10T11:10:04.000Z",
  "updatedAt": "2026-11-10T11:10:04.000Z",
  "allee": {
    "url": "https://allee.pl/oferta/metropolis-dvd-wydanie-odrestaurowane-900000000000022",
    "endedReason": null,
    "imagesPending": 0,
    "categorySource": "allegro"
  }
}
Przykład: Druga oferta tego samego filmu (wariant)
curl -sS -X POST "${ALLEE_API_URL:-https://api.allee.pl}/sale/product-offers" \
  -H "Authorization: Bearer $ALLEE_API_KEY" \
  -H "Accept: application/vnd.allegro.public.v1+json" \
  -H "Content-Type: application/vnd.allegro.public.v1+json" \
  --data-binary @- \
  -w '\nHTTP %{http_code}\n' <<'JSON'
{
  "productSet": [
    {
      "product": {
        "name": "Podróż na Księżyc Blu-ray wydanie kolekcjonerskie",
        "category": {
          "id": "20585"
        },
        "parameters": [
          {
            "id": "225693",
            "values": [
              "5901234123457"
            ]
          },
          {
            "id": "237218",
            "values": [
              "Podróż na Księżyc"
            ]
          },
          {
            "id": "246845",
            "valuesIds": [
              "246845_622165"
            ]
          },
          {
            "id": "250077",
            "valuesIds": [
              "250077_1797493"
            ]
          }
        ],
        "images": [
          "https://cdn.allee.pl/img/a/webe/1930/10001318-0-1200.webp"
        ]
      },
      "responsibleProducer": {
        "type": "ID",
        "id": "472bad66-e704-4344-a2d6-9bd85b1f9a5e"
      },
      "safetyInformation": {
        "type": "TEXT",
        "description": "Produkt bezpieczny w normalnym użytkowaniu. Przechowywać z dala od źródeł ciepła."
      }
    }
  ],
  "parameters": [
    {
      "id": "11323",
      "valuesIds": [
        "11323_1"
      ]
    }
  ],
  "sellingMode": {
    "format": "BUY_NOW",
    "price": {
      "amount": "49.90",
      "currency": "PLN"
    }
  },
  "stock": {
    "available": 10,
    "unit": "UNIT"
  },
  "external": {
    "id": "FILM-21ef85-WAR"
  },
  "description": {
    "sections": [
      {
        "items": [
          {
            "type": "TEXT",
            "content": "<h2>Opis</h2><p>Film na płycie DVD, wydanie kolekcjonerskie, nowy w folii.</p><ul><li>Region 2</li><li>Język: polski</li></ul>"
          }
        ]
      }
    ]
  },
  "delivery": {
    "handlingTime": "PT24H",
    "shippingRates": {
      "id": "797d2e65-cb23-4a16-98e9-d6f2a399839a"
    }
  },
  "afterSalesServices": {
    "returnPolicy": {
      "id": "0d2fcf15-119d-479c-9d97-ba1794013def"
    },
    "impliedWarranty": {
      "id": "d82f8496-f284-4cdf-9575-242222870c5f"
    }
  },
  "taxSettings": {
    "rates": [
      {
        "rate": "23.00",
        "countryCode": "PL"
      }
    ]
  },
  "payments": {
    "invoice": "VAT"
  },
  "location": {
    "city": "Warszawa",
    "countryCode": "PL",
    "postCode": "00-001",
    "province": "MAZOWIECKIE"
  },
  "publication": {
    "status": "ACTIVE"
  }
}
JSON
HTTP 201 application/vnd.allegro.public.v1+json
{
  "id": "900000000000023",
  "name": "Podróż na Księżyc Blu-ray wydanie kolekcjonerskie",
  "category": {
    "id": "20585",
    "alleeId": 35
  },
  "productSet": [
    {
      "product": {
        "name": "Podróż na Księżyc Blu-ray wydanie kolekcjonerskie",
        "category": {
          "id": "20585",
          "alleeId": 35
        },
        "parameters": [
          {
            "id": "246845",
            "alleeId": 8973,
            "name": "Nośnik",
            "valuesIds": [
              "246845_622165"
            ],
            "alleeValuesIds": [
              79216
            ],
            "values": [
              "płyta DVD"
            ],
            "rangeValue": null
          },
          {
            "id": "250077",
            "alleeId": 10923,
            "name": "Gatunek",
            "valuesIds": [
              "250077_1797493"
            ],
            "alleeValuesIds": [
              258674
            ],
            "values": [
              "anime"
            ],
            "rangeValue": null
          },
          {
            "id": "225693",
            "alleeId": 5967,
            "name": "EAN (GTIN)",
            "valuesIds": [],
            "values": [
              "5901234123457"
            ],
            "rangeValue": null
          },
          {
            "id": "237218",
            "alleeId": 7939,
            "name": "Tytuł",
            "valuesIds": [],
            "values": [
              "Podróż na Księżyc"
            ],
            "rangeValue": null
          }
        ],
        "images": [
          "https://cdn.allee.pl/img/sandbox/9a16623650ab051ba0d7-1200.webp"
        ]
      },
      "responsibleProducer": {
        "type": "ID",
        "id": "472bad66-e704-4344-a2d6-9bd85b1f9a5e"
      },
      "responsiblePerson": null,
      "safetyInformation": {
        "type": "TEXT",
        "description": "Produkt bezpieczny w normalnym użytkowaniu. Przechowywać z dala od źródeł ciepła."
      }
    }
  ],
  "parameters": [
    {
      "id": "11323",
      "alleeId": 669,
      "name": "Stan",
      "valuesIds": [
        "11323_1"
      ],
      "alleeValuesIds": [
        6386
      ],
      "values": [
        "Nowy"
      ],
      "rangeValue": null
    }
  ],
  "sellingMode": {
    "format": "BUY_NOW",
    "price": {
      "amount": "49.90",
      "currency": "PLN"
    }
  },
  "stock": {
    "available": 10,
    "unit": "UNIT"
  },
  "publication": {
    "status": "ACTIVE",
    "endedBy": null
  },
  "external": {
    "id": "FILM-21ef85-WAR"
  },
  "delivery": {
    "handlingTime": "PT24H",
    "shippingRates": {
      "id": "797d2e65-cb23-4a16-98e9-d6f2a399839a"
    }
  },
  "afterSalesServices": {
    "returnPolicy": {
      "id": "0d2fcf15-119d-479c-9d97-ba1794013def"
    },
    "warranty": null,
    "impliedWarranty": {
      "id": "d82f8496-f284-4cdf-9575-242222870c5f"
    }
  },
  "taxSettings": {
    "rates": [
      {
        "rate": "23.00",
        "countryCode": "PL"
      }
    ]
  },
  "payments": {
    "invoice": "VAT"
  },
  "images": [
    "https://cdn.allee.pl/img/sandbox/9a16623650ab051ba0d7-1200.webp"
  ],
  "description": {
    "sections": [
      {
        "items": [
          {
            "type": "TEXT",
            "content": "<p>Opis</p><p>Film na płycie DVD, wydanie kolekcjonerskie, nowy w folii.</p><p>• Region 2<br>• Język: polski</p>"
          }
        ]
      }
    ]
  },
  "location": {
    "city": "Warszawa",
    "countryCode": "PL",
    "postCode": "00-001",
    "province": "MAZOWIECKIE"
  },
  "validation": {
    "errors": [],
    "warnings": []
  },
  "createdAt": "2026-11-10T11:10:04.000Z",
  "updatedAt": "2026-11-10T11:10:04.000Z",
  "allee": {
    "url": "https://allee.pl/oferta/podroz-na-ksiezyc-blu-ray-wydanie-kolekcjonerskie-900000000000023",
    "endedReason": null,
    "imagesPending": 0,
    "categorySource": "allegro"
  }
}

Oferta

GET /sale/product-offers/{offerId}

Allegro + rozszerzeniaallegro:api:sale:offers:readlimit: read

Pełna oferta. validation.errors = prawdziwe problemy (np. nieudane zdjęcia). Cudza → 403, brak → 404.

Zgodność: zgodna z Allegro REST API, z rozszerzeniami allee (pola allee.*, alleeId) — GET /sale/product-offers/{offerId}.
Uprawnienie: zakres allegro:api:sale:offers:read.
Grupa limitu: read.

Parametry ścieżki

offerId string wymagany

Identyfikator oferty (liczba w tekście).

Odpowiedzi

200 Oferta. · ProductOffer
id string zawsze

Identyfikator oferty.

name string zawsze

Tytuł oferty.

category CategoryRef zawsze

Kategoria — oba identyfikatory.

Pola obiektu
id string · null zawsze

Identyfikator kategorii Allegro (bywa liczbą, bywa UUID).

alleeId integer zawsze

Identyfikator kategorii allee.

productSet array<object> zawsze

Zawsze dokładnie 1 element.

Pola obiektu
product object zawsze
Pola obiektu
name string zawsze
category CategoryRef zawsze

Kategoria — oba identyfikatory.

Pola obiektu
id string · null zawsze

Identyfikator kategorii Allegro (bywa liczbą, bywa UUID).

alleeId integer zawsze

Identyfikator kategorii allee.

parameters array<OfferParameter> zawsze

Parametry produktu (bez Stanu).

Pola obiektu
id string zawsze

Identyfikator parametru Allegro.

alleeId integer zawsze
name string zawsze
valuesIds array<string> zawsze

Identyfikatory wartości słownika Allegro (puste dla parametrów liczbowych/tekstowych).

alleeValuesIds array<integer>

Identyfikatory wartości allee (tylko słownikowe).

values array<string> zawsze

Wartości tekstowo.

rangeValue any · null zawsze

Zawsze null (zakresy nieobsługiwane).

images array<string · uri> zawsze

Zdjęcia po przetworzeniu (cdn.allee.pl, WebP 1200 px).

responsibleProducer object · null zawsze

Producent GPSR.

Pola obiektu
type string zawsze
Wartości: ID
id string · uuid zawsze
responsiblePerson IdRef · null zawsze

Osoba odpowiedzialna GPSR.

Pola obiektu
id string zawsze
safetyInformation SafetyInformation · null zawsze
Pola obiektu
type string zawsze
Wartości: TEXT, NO_SAFETY_INFORMATION, ATTACHMENTS
description string

Treść informacji (dla TEXT).

parameters array<OfferParameter> zawsze

Parametry oferty — tu jest Stan (11323).

Pola obiektu
id string zawsze

Identyfikator parametru Allegro.

alleeId integer zawsze
name string zawsze
valuesIds array<string> zawsze

Identyfikatory wartości słownika Allegro (puste dla parametrów liczbowych/tekstowych).

alleeValuesIds array<integer>

Identyfikatory wartości allee (tylko słownikowe).

values array<string> zawsze

Wartości tekstowo.

rangeValue any · null zawsze

Zawsze null (zakresy nieobsługiwane).

sellingMode object zawsze
Pola obiektu
format string zawsze

Oferty przez API: BUY_NOW (licytacje tylko z panelu).

Wartości: BUY_NOW, AUCTION
price Money zawsze

Kwota (kształt Allegro).

Pola obiektu
amount string zawsze

Kwota z dwoma miejscami po przecinku, kropka dziesiętna.

currency string zawsze

Waluta (allee.pl: tylko PLN).

Wartości: PLN
stock object zawsze
Pola obiektu
available integer zawsze

Dostępne sztuki (0–99 999).

unit string zawsze
Wartości: UNIT
publication object zawsze
Pola obiektu
status PublicationStatus zawsze

INACTIVE = szkic, ACTIVATING = czeka na zdjęcia, ACTIVE = widoczna i kupowalna, ENDED = zakończona.

Wartości: INACTIVE, ACTIVATING, ACTIVE, ENDED
endedBy string · null zawsze

Kto zakończył (tylko przy ENDED).

Wartości: USER, EMPTY_STOCK, ADMIN, EXPIRATION, null
external object · null zawsze
Pola obiektu
id string zawsze

SKU sprzedawcy (unikalne na koncie).

delivery object zawsze
Pola obiektu
handlingTime string · null zawsze

Czas wysyłki.

Wartości: PT0S, PT24H, P2D, P3D, P4D, P5D, P7D, P10D, P14D, P21D, P30D, P60D, null
shippingRates IdRef · null zawsze

Cennik dostawy.

Pola obiektu
id string zawsze
afterSalesServices object zawsze
Pola obiektu
returnPolicy IdRef · null zawsze
Pola obiektu
id string zawsze
warranty IdRef · null zawsze
Pola obiektu
id string zawsze
impliedWarranty IdRef · null zawsze
Pola obiektu
id string zawsze
taxSettings object · null zawsze

Stawka VAT.

Pola obiektu
rates array<object> zawsze
Pola obiektu
rate string zawsze
Wartości: 0.00, 5.00, 8.00, 23.00
countryCode string zawsze
Wartości: PL
payments object zawsze
Pola obiektu
invoice string · null zawsze

Rodzaj dokumentu sprzedaży.

Wartości: VAT, VAT_MARGIN, WITHOUT_VAT, NO_INVOICE, null
images array<string · uri> zawsze

To samo co productSet[0].product.images.

description OfferDescription zawsze

Opis w sekcjach Allegro. allee zapisuje go jako tekst (znaczniki formatowania, skrypty i style znikają); odczyt zwraca jedną sekcję TEXT z odtworzonym prostym HTML: akapity <p> i <br>, a nagłówek tuż przed listą wraca jako <h2> + <ul><li>. Nie porównuj opisu 1:1 z wysłanym.

Pola obiektu
sections array<object> zawsze
Pola obiektu
items array<object> zawsze
Pola obiektu
type string zawsze
Wartości: TEXT, IMAGE
content string

HTML (TEXT).

url string

Adres obrazka (IMAGE — pomijany).

location object · null zawsze

Lokalizacja (zapisana 1:1, zwykle city, countryCode, postCode, province).

validation object zawsze
Pola obiektu
errors array<Error> zawsze

Prawdziwe problemy oferty, np. nieudane zdjęcia; puste = brak problemów.

Pola obiektu
code string zawsze

Kod maszynowy błędu — na nim opieraj obsługę (lista: przewodnik „Błędy”).

message string zawsze

Opis dla programisty (po polsku).

details any zawsze

Dane dodatkowe albo null — np. id istniejącej oferty przy OfferDuplicate, {"current": "SENT"} przy błędzie statusu, {"retryAfterMs": 1200} przy limicie.

path string · null zawsze

Pole żądania, którego dotyczy błąd, np. productSet[0].product.parameters.

userMessage string zawsze

Komunikat, który można pokazać sprzedawcy.

warnings array<Error> zawsze

Tylko w odpowiedzi POST/PATCH: co allee dopasowało zamiast odrzucić (np. czas wysyłki zaokrąglony w górę, parametr jednowartościowy obcięty do pierwszej wartości). W GET puste.

Pola obiektu
code string zawsze

Kod maszynowy błędu — na nim opieraj obsługę (lista: przewodnik „Błędy”).

message string zawsze

Opis dla programisty (po polsku).

details any zawsze

Dane dodatkowe albo null — np. id istniejącej oferty przy OfferDuplicate, {"current": "SENT"} przy błędzie statusu, {"retryAfterMs": 1200} przy limicie.

path string · null zawsze

Pole żądania, którego dotyczy błąd, np. productSet[0].product.parameters.

userMessage string zawsze

Komunikat, który można pokazać sprzedawcy.

createdAt string · date-time zawsze
updatedAt string · date-time zawsze
allee object zawsze

Rozszerzenie allee.

Pola obiektu
url string · uri zawsze

Adres oferty na allee.pl.

endedReason string · null zawsze

Powód zakończenia nadany przez allee (np. R2 = 0 sztuk).

imagesPending integer zawsze

Zdjęcia czekające na pobranie przez allee.

categorySource string

Tylko w odpowiedzi POST: która kategoria została użyta.

Wartości: allegro, allee, allee (podano obie — allee ma pierwszeństwo)

Błędy

HTTPKodZnaczenie
401invalid_tokenBrak, zły, wygasły albo odwołany token lub klucz (format OAuth, nagłówek WWW-Authenticate).
403ACCOUNT_INACTIVEKonto sprzedawcy jest nieaktywne.
403AccessDeniedBrak zakresu albo zasób innego sprzedawcy.
403KEY_QUARANTINEDKwarantanna: działa tylko odczyt (wykryto nietypowe użycie).
403KEY_SUSPENDEDKlucz albo dostęp aplikacji wstrzymany (przez sprzedawcę albo ochronę).
404NOT_FOUNDNie ma takiego zasobu (albo należy do innego sprzedawcy — dla wątków, zwrotów i spraw odpowiedź jest ta sama).
429TOO_MANY_REQUESTSPrzekroczony limit (minutowy, grupy operacji albo IP).
500INTERNAL_ERRORBłąd serwera allee.
Przykład
curl -sS -X GET "${ALLEE_API_URL:-https://api.allee.pl}/sale/product-offers/900000000000021" \
  -H "Authorization: Bearer $ALLEE_API_KEY" \
  -H "Accept: application/vnd.allegro.public.v1+json" \
  -w '\nHTTP %{http_code}\n'
Odpowiedź (środowisko testowe)
HTTP 200 application/vnd.allegro.public.v1+json
{
  "id": "900000000000021",
  "name": "Podróż na Księżyc DVD wydanie kolekcjonerskie",
  "category": {
    "id": "20585",
    "alleeId": 35
  },
  "productSet": [
    {
      "product": {
        "name": "Podróż na Księżyc DVD wydanie kolekcjonerskie",
        "category": {
          "id": "20585",
          "alleeId": 35
        },
        "parameters": [
          {
            "id": "246845",
            "alleeId": 8973,
            "name": "Nośnik",
            "valuesIds": [
              "246845_622165"
            ],
            "alleeValuesIds": [
              79216
            ],
            "values": [
              "płyta DVD"
            ],
            "rangeValue": null
          },
          {
            "id": "250077",
            "alleeId": 10923,
            "name": "Gatunek",
            "valuesIds": [
              "250077_1797493"
            ],
            "alleeValuesIds": [
              258674
            ],
            "values": [
              "anime"
            ],
            "rangeValue": null
          },
          {
            "id": "225693",
            "alleeId": 5967,
            "name": "EAN (GTIN)",
            "valuesIds": [],
            "values": [
              "5901234123457"
            ],
            "rangeValue": null
          },
          {
            "id": "237218",
            "alleeId": 7939,
            "name": "Tytuł",
            "valuesIds": [],
            "values": [
              "Podróż na Księżyc"
            ],
            "rangeValue": null
          }
        ],
        "images": [
          "https://cdn.allee.pl/img/sandbox/9a16623650ab051ba0d7-1200.webp"
        ]
      },
      "responsibleProducer": {
        "type": "ID",
        "id": "472bad66-e704-4344-a2d6-9bd85b1f9a5e"
      },
      "responsiblePerson": null,
      "safetyInformation": {
        "type": "TEXT",
        "description": "Produkt bezpieczny w normalnym użytkowaniu. Przechowywać z dala od źródeł ciepła."
      }
    }
  ],
  "parameters": [
    {
      "id": "11323",
      "alleeId": 669,
      "name": "Stan",
      "valuesIds": [
        "11323_1"
      ],
      "alleeValuesIds": [
        6386
      ],
      "values": [
        "Nowy"
      ],
      "rangeValue": null
    }
  ],
  "sellingMode": {
    "format": "BUY_NOW",
    "price": {
      "amount": "49.90",
      "currency": "PLN"
    }
  },
  "stock": {
    "available": 10,
    "unit": "UNIT"
  },
  "publication": {
    "status": "ACTIVE",
    "endedBy": null
  },
  "external": {
    "id": "FILM-21ef85-1"
  },
  "delivery": {
    "handlingTime": "PT24H",
    "shippingRates": {
      "id": "797d2e65-cb23-4a16-98e9-d6f2a399839a"
    }
  },
  "afterSalesServices": {
    "returnPolicy": {
      "id": "0d2fcf15-119d-479c-9d97-ba1794013def"
    },
    "warranty": null,
    "impliedWarranty": {
      "id": "d82f8496-f284-4cdf-9575-242222870c5f"
    }
  },
  "taxSettings": {
    "rates": [
      {
        "rate": "23.00",
        "countryCode": "PL"
      }
    ]
  },
  "payments": {
    "invoice": "VAT"
  },
  "images": [
    "https://cdn.allee.pl/img/sandbox/9a16623650ab051ba0d7-1200.webp"
  ],
  "description": {
    "sections": [
      {
        "items": [
          {
            "type": "TEXT",
            "content": "<p>Opis</p><p>Film na płycie DVD, wydanie kolekcjonerskie, nowy w folii.</p><p>• Region 2<br>• Język: polski</p>"
          }
        ]
      }
    ]
  },
  "location": {
    "city": "Warszawa",
    "countryCode": "PL",
    "postCode": "00-001",
    "province": "MAZOWIECKIE"
  },
  "validation": {
    "errors": [],
    "warnings": []
  },
  "createdAt": "2026-11-10T11:10:03.000Z",
  "updatedAt": "2026-11-10T11:10:03.000Z",
  "allee": {
    "url": "https://allee.pl/oferta/podroz-na-ksiezyc-dvd-wydanie-kolekcjonerskie-900000000000021",
    "endedReason": null,
    "imagesPending": 0
  }
}

Zmiana oferty

PATCH /sale/product-offers/{offerId}

Allegro + rozszerzeniaallegro:api:sale:offers:writelimit: write

Zmieniasz tylko podane pola; odpowiedź 200 z pełną ofertą.

  • Szybka ścieżka: ciało tylko ze stock i/lub sellingMode.price — bez pełnej walidacji treści (masowe aktualizacje).
  • Parametry są scalane (podane zastępują te same parametry, reszta zostaje).
  • Status publikacji zmieniasz poleceniem PUT /sale/offer-publication-commands/{id} (pole publication → 422).
  • stock.available = 0 na aktywnej ofercie kończy ją (ENDED, endedBy: EMPTY_STOCK).
  • ?validateOnly=true — podgląd bez zapisu.

Zgodność: zgodna z Allegro REST API, z rozszerzeniami allee (pola allee.*, alleeId) — PATCH /sale/product-offers/{offerId}.
Uprawnienie: zakres allegro:api:sale:offers:write.
Grupa limitu: write.

Parametry ścieżki

offerId string wymagany

Identyfikator oferty (liczba w tekście).

Parametry zapytania

validateOnly boolean

true = tylko walidacja.

Treść żądania application/vnd.allegro.public.v1+json

productSet array<object> wymagane

Dokładnie 1 element.

Pola obiektu
product object wymagane
Pola obiektu
name string

Tytuł: 10–75 znaków, żadne słowo dłuższe niż 30 znaków.

category object
Pola obiektu
id string

Id kategorii Allegro.

alleeId integer|string

Id allee — gdy podano oba, wygrywa alleeId.

parameters array<OfferParameterInput>
Pola obiektu
id string

Id parametru Allegro.

alleeId integer|string

Id parametru allee.

name string

Albo nazwa parametru w kategorii (bez względu na wielkość liter).

valuesIds array<string>
alleeValuesIds array<integer|string>
values array<string|number>

Tekst (słownik dopasowywany bez względu na wielkość liter), liczba albo tekst.

rangeValue any

Nieobsługiwane → 422 ConstraintViolationException.RangeValueNotSupported.

images array<string · uri | object>

1–16 adresów https: lista tekstów albo obiektów {url} (jak w odczycie Allegro).

id string

Karta produktu Allegro — pomijana; samo id bez danych → 422 CATALOG_PRODUCT_NOT_SUPPORTED.

responsibleProducer object · null
Pola obiektu
type string wymagane
Wartości: ID
id string · uuid wymagane
responsiblePerson IdRef · null
Pola obiektu
id string wymagane
safetyInformation SafetyInformation · null
Pola obiektu
type string wymagane
Wartości: TEXT, NO_SAFETY_INFORMATION, ATTACHMENTS
description string

Treść informacji (dla TEXT).

parameters array<OfferParameterInput>

Parametry oferty (Stan 11323 — przyjmowany w każdej kategorii).

Pola obiektu
id string

Id parametru Allegro.

alleeId integer|string

Id parametru allee.

name string

Albo nazwa parametru w kategorii (bez względu na wielkość liter).

valuesIds array<string>
alleeValuesIds array<integer|string>
values array<string|number>

Tekst (słownik dopasowywany bez względu na wielkość liter), liczba albo tekst.

rangeValue any

Nieobsługiwane → 422 ConstraintViolationException.RangeValueNotSupported.

sellingMode object

Cena wymagana: 1,00–10 000 000,00 zł.

Pola obiektu
format string
Wartości: BUY_NOW
price MoneyInput

Kwota w żądaniu.

Pola obiektu
amount string|number wymagane

Kwota jako tekst „123.45” (zalecane) albo liczba.

currency string

Waluta: tylko PLN (domyślnie PLN).

Wartości: PLN
stock object
Pola obiektu
available integer|string

0–99 999 (przy POST co najmniej 1).

unit string
Wartości: UNIT
external object · null
Pola obiektu
id string|integer

SKU (do 100 znaków), unikalne na koncie — dubel → 409 OfferDuplicate.

description OfferDescription

Opis w sekcjach Allegro. allee zapisuje go jako tekst (znaczniki formatowania, skrypty i style znikają); odczyt zwraca jedną sekcję TEXT z odtworzonym prostym HTML: akapity <p> i <br>, a nagłówek tuż przed listą wraca jako <h2> + <ul><li>. Nie porównuj opisu 1:1 z wysłanym.

Pola obiektu
sections array<object> wymagane
Pola obiektu
items array<object> wymagane
Pola obiektu
type string wymagane
Wartości: TEXT, IMAGE
content string

HTML (TEXT).

url string

Adres obrazka (IMAGE — pomijany).

publication object
Pola obiektu
status string

Tylko w POST; brak = INACTIVE (szkic).

Wartości: ACTIVE, INACTIVE
delivery object
Pola obiektu
handlingTime string · null

Czas ISO 8601 do 60 dni, np. PT24H, P3D, PT72H (jak w odczycie Allegro). Zapisywany jako jedna z wartości PT0S, PT24H, P2D, P3D, P4D, P5D, P7D, P10D, P14D, P21D, P30D, P60D; wartość pośrednia — w górę, z ostrzeżeniem w validation.warnings.

shippingRates IdRef · null

Twój cennik — wymagany w POST.

Pola obiektu
id string wymagane
additionalInfo any

Bez skutku.

shipmentDate any

Bez skutku.

afterSalesServices object
Pola obiektu
returnPolicy IdRef · null
Pola obiektu
id string wymagane
warranty IdRef · null
Pola obiektu
id string wymagane
impliedWarranty IdRef · null
Pola obiektu
id string wymagane
taxSettings object · null
Pola obiektu
rates array<object> wymagane
Pola obiektu
rate string wymagane

Tekst, nie liczba.

Wartości: 0.00, 5.00, 8.00, 23.00
countryCode string
payments object
Pola obiektu
invoice string · null
Wartości: VAT, VAT_MARGIN, WITHOUT_VAT, NO_INVOICE, null
location object · null

Do 300 znaków JSON.

images array<string>

Alternatywnie zdjęcia na wierzchu.

category object

Alternatywnie kategoria na wierzchu.

Pola obiektu
id string
alleeId integer|string
name string

Tytuł oferty (jak Allegro) — w POST i PATCH; ma pierwszeństwo przed productSet[0].product.name.

id any

Tylko do odczytu — pomijane.

validation any

Tylko do odczytu — pomijane.

warnings any

Tylko do odczytu — pomijane.

createdAt any

Tylko do odczytu — pomijane.

updatedAt any

Tylko do odczytu — pomijane.

aiCoCreatedContent any

Tylko do odczytu — pomijane.

allee any

Tylko do odczytu — pomijane.

language any

Przyjmowane bez skutku.

additionalMarketplaces any

Bez skutku.

b2b any

Bez skutku.

discounts any

Bez skutku.

compatibilityList any

Bez skutku.

tecdocSpecification any

Bez skutku.

contact any

Bez skutku.

messageToSellerSettings any

Bez skutku.

attachments any

Bez skutku.

fundraisingCampaign any

Bez skutku.

additionalServices any

Bez skutku.

sizeTable any

Bez skutku.

promotion any

Bez skutku.

Odpowiedzi

200 Zmieniono (albo wynik validateOnly). · ProductOffer | ValidationResult
id string zawsze

Identyfikator oferty.

name string zawsze

Tytuł oferty.

category CategoryRef zawsze

Kategoria — oba identyfikatory.

Pola obiektu
id string · null zawsze

Identyfikator kategorii Allegro (bywa liczbą, bywa UUID).

alleeId integer zawsze

Identyfikator kategorii allee.

productSet array<object> zawsze

Zawsze dokładnie 1 element.

Pola obiektu
product object zawsze
Pola obiektu
name string zawsze
category CategoryRef zawsze

Kategoria — oba identyfikatory.

Pola obiektu
id string · null zawsze

Identyfikator kategorii Allegro (bywa liczbą, bywa UUID).

alleeId integer zawsze

Identyfikator kategorii allee.

parameters array<OfferParameter> zawsze

Parametry produktu (bez Stanu).

Pola obiektu
id string zawsze

Identyfikator parametru Allegro.

alleeId integer zawsze
name string zawsze
valuesIds array<string> zawsze

Identyfikatory wartości słownika Allegro (puste dla parametrów liczbowych/tekstowych).

alleeValuesIds array<integer>

Identyfikatory wartości allee (tylko słownikowe).

values array<string> zawsze

Wartości tekstowo.

rangeValue any · null zawsze

Zawsze null (zakresy nieobsługiwane).

images array<string · uri> zawsze

Zdjęcia po przetworzeniu (cdn.allee.pl, WebP 1200 px).

responsibleProducer object · null zawsze

Producent GPSR.

Pola obiektu
type string zawsze
Wartości: ID
id string · uuid zawsze
responsiblePerson IdRef · null zawsze

Osoba odpowiedzialna GPSR.

Pola obiektu
id string zawsze
safetyInformation SafetyInformation · null zawsze
Pola obiektu
type string zawsze
Wartości: TEXT, NO_SAFETY_INFORMATION, ATTACHMENTS
description string

Treść informacji (dla TEXT).

parameters array<OfferParameter> zawsze

Parametry oferty — tu jest Stan (11323).

Pola obiektu
id string zawsze

Identyfikator parametru Allegro.

alleeId integer zawsze
name string zawsze
valuesIds array<string> zawsze

Identyfikatory wartości słownika Allegro (puste dla parametrów liczbowych/tekstowych).

alleeValuesIds array<integer>

Identyfikatory wartości allee (tylko słownikowe).

values array<string> zawsze

Wartości tekstowo.

rangeValue any · null zawsze

Zawsze null (zakresy nieobsługiwane).

sellingMode object zawsze
Pola obiektu
format string zawsze

Oferty przez API: BUY_NOW (licytacje tylko z panelu).

Wartości: BUY_NOW, AUCTION
price Money zawsze

Kwota (kształt Allegro).

Pola obiektu
amount string zawsze

Kwota z dwoma miejscami po przecinku, kropka dziesiętna.

currency string zawsze

Waluta (allee.pl: tylko PLN).

Wartości: PLN
stock object zawsze
Pola obiektu
available integer zawsze

Dostępne sztuki (0–99 999).

unit string zawsze
Wartości: UNIT
publication object zawsze
Pola obiektu
status PublicationStatus zawsze

INACTIVE = szkic, ACTIVATING = czeka na zdjęcia, ACTIVE = widoczna i kupowalna, ENDED = zakończona.

Wartości: INACTIVE, ACTIVATING, ACTIVE, ENDED
endedBy string · null zawsze

Kto zakończył (tylko przy ENDED).

Wartości: USER, EMPTY_STOCK, ADMIN, EXPIRATION, null
external object · null zawsze
Pola obiektu
id string zawsze

SKU sprzedawcy (unikalne na koncie).

delivery object zawsze
Pola obiektu
handlingTime string · null zawsze

Czas wysyłki.

Wartości: PT0S, PT24H, P2D, P3D, P4D, P5D, P7D, P10D, P14D, P21D, P30D, P60D, null
shippingRates IdRef · null zawsze

Cennik dostawy.

Pola obiektu
id string zawsze
afterSalesServices object zawsze
Pola obiektu
returnPolicy IdRef · null zawsze
Pola obiektu
id string zawsze
warranty IdRef · null zawsze
Pola obiektu
id string zawsze
impliedWarranty IdRef · null zawsze
Pola obiektu
id string zawsze
taxSettings object · null zawsze

Stawka VAT.

Pola obiektu
rates array<object> zawsze
Pola obiektu
rate string zawsze
Wartości: 0.00, 5.00, 8.00, 23.00
countryCode string zawsze
Wartości: PL
payments object zawsze
Pola obiektu
invoice string · null zawsze

Rodzaj dokumentu sprzedaży.

Wartości: VAT, VAT_MARGIN, WITHOUT_VAT, NO_INVOICE, null
images array<string · uri> zawsze

To samo co productSet[0].product.images.

description OfferDescription zawsze

Opis w sekcjach Allegro. allee zapisuje go jako tekst (znaczniki formatowania, skrypty i style znikają); odczyt zwraca jedną sekcję TEXT z odtworzonym prostym HTML: akapity <p> i <br>, a nagłówek tuż przed listą wraca jako <h2> + <ul><li>. Nie porównuj opisu 1:1 z wysłanym.

Pola obiektu
sections array<object> zawsze
Pola obiektu
items array<object> zawsze
Pola obiektu
type string zawsze
Wartości: TEXT, IMAGE
content string

HTML (TEXT).

url string

Adres obrazka (IMAGE — pomijany).

location object · null zawsze

Lokalizacja (zapisana 1:1, zwykle city, countryCode, postCode, province).

validation object zawsze
Pola obiektu
errors array<Error> zawsze

Prawdziwe problemy oferty, np. nieudane zdjęcia; puste = brak problemów.

Pola obiektu
code string zawsze

Kod maszynowy błędu — na nim opieraj obsługę (lista: przewodnik „Błędy”).

message string zawsze

Opis dla programisty (po polsku).

details any zawsze

Dane dodatkowe albo null — np. id istniejącej oferty przy OfferDuplicate, {"current": "SENT"} przy błędzie statusu, {"retryAfterMs": 1200} przy limicie.

path string · null zawsze

Pole żądania, którego dotyczy błąd, np. productSet[0].product.parameters.

userMessage string zawsze

Komunikat, który można pokazać sprzedawcy.

warnings array<Error> zawsze

Tylko w odpowiedzi POST/PATCH: co allee dopasowało zamiast odrzucić (np. czas wysyłki zaokrąglony w górę, parametr jednowartościowy obcięty do pierwszej wartości). W GET puste.

Pola obiektu
code string zawsze

Kod maszynowy błędu — na nim opieraj obsługę (lista: przewodnik „Błędy”).

message string zawsze

Opis dla programisty (po polsku).

details any zawsze

Dane dodatkowe albo null — np. id istniejącej oferty przy OfferDuplicate, {"current": "SENT"} przy błędzie statusu, {"retryAfterMs": 1200} przy limicie.

path string · null zawsze

Pole żądania, którego dotyczy błąd, np. productSet[0].product.parameters.

userMessage string zawsze

Komunikat, który można pokazać sprzedawcy.

createdAt string · date-time zawsze
updatedAt string · date-time zawsze
allee object zawsze

Rozszerzenie allee.

Pola obiektu
url string · uri zawsze

Adres oferty na allee.pl.

endedReason string · null zawsze

Powód zakończenia nadany przez allee (np. R2 = 0 sztuk).

imagesPending integer zawsze

Zdjęcia czekające na pobranie przez allee.

categorySource string

Tylko w odpowiedzi POST: która kategoria została użyta.

Wartości: allegro, allee, allee (podano obie — allee ma pierwszeństwo)

Błędy

HTTPKodZnaczenie
401invalid_tokenBrak, zły, wygasły albo odwołany token lub klucz (format OAuth, nagłówek WWW-Authenticate).
403ACCOUNT_INACTIVEKonto sprzedawcy jest nieaktywne.
403AccessDeniedBrak zakresu albo zasób innego sprzedawcy.
403KEY_QUARANTINEDKwarantanna: działa tylko odczyt (wykryto nietypowe użycie).
403KEY_SUSPENDEDKlucz albo dostęp aplikacji wstrzymany (przez sprzedawcę albo ochronę).
403OFFER_ENDED_BY_ADMINOfertę zakończyła moderacja allee — nie można jej zmienić ani wznowić.
404NOT_FOUNDNie ma takiego zasobu (albo należy do innego sprzedawcy — dla wątków, zwrotów i spraw odpowiedź jest ta sama).
409OfferDuplicateOferta z tym external.id (SKU) już istnieje — details = jej id.
413PAYLOAD_TOO_LARGETreść żądania za duża (JSON 5 MB, faktura PDF 3 MB).
415UNSUPPORTED_MEDIA_TYPEZły Content-Type treści.
422ATTACHMENTS_NOT_SUPPORTEDallee nie przyjmuje załączników w wiadomościach.
422CATALOG_PRODUCT_NOT_SUPPORTEDSama karta produktu Allegro bez danych.
422CATEGORY_NOT_FOUNDNie ma takiej kategorii.
422CATEGORY_NOT_LEAFKategoria nie jest liściem.
422ConstraintViolationException.MissingRequiredParametersBrak wymaganego parametru lub pola (details = id parametru).
422ConstraintViolationException.RangeValueNotSupportedrangeValue nieobsługiwane.
422ConstraintViolationException.TooManyValuesKilka wartości przy multipleChoices: false.
422DictionaryParameterValueNotFoundWartość spoza słownika kategorii (albo Stan nieobsługiwany przez allee).
422IMAGE_DOWNLOAD_FAILEDAdres zdjęcia niedozwolony albo nie da się go pobrać (path = które zdjęcie).
422INVALID_QUANTITYLiczba sztuk poza zakresem.
422JsonMappingExceptionTreść nie jest poprawnym JSON albo ma zły kształt (np. images jako obiekty).
422ParameterCategoryExceptionParametr nie należy do kategorii.
422RESPONSIBLE_PRODUCER_NOT_SPECIFIEDPublikacja bez producenta GPSR.
422SAFETY_INFO_NOT_DEFINEDPublikacja bez informacji o bezpieczeństwie (GPSR).
422UnknownJSONPropertyPole nieznane w tym miejscu (path wskazuje które).
422VALIDATION_ERRORZła wartość parametru zapytania (400) albo pola treści (422); path wskazuje miejsce.
429TOO_MANY_REQUESTSPrzekroczony limit (minutowy, grupy operacji albo IP).
500INTERNAL_ERRORBłąd serwera allee.
Przykład
curl -sS -X PATCH "${ALLEE_API_URL:-https://api.allee.pl}/sale/product-offers/900000000000021" \
  -H "Authorization: Bearer $ALLEE_API_KEY" \
  -H "Accept: application/vnd.allegro.public.v1+json" \
  -H "Content-Type: application/vnd.allegro.public.v1+json" \
  --data-binary @- \
  -w '\nHTTP %{http_code}\n' <<'JSON'
{
  "sellingMode": {
    "price": {
      "amount": "44.90",
      "currency": "PLN"
    }
  },
  "stock": {
    "available": 8
  }
}
JSON
Odpowiedź (środowisko testowe)
HTTP 200 application/vnd.allegro.public.v1+json
{
  "id": "900000000000021",
  "name": "Podróż na Księżyc DVD wydanie kolekcjonerskie",
  "category": {
    "id": "20585",
    "alleeId": 35
  },
  "productSet": [
    {
      "product": {
        "name": "Podróż na Księżyc DVD wydanie kolekcjonerskie",
        "category": {
          "id": "20585",
          "alleeId": 35
        },
        "parameters": [
          {
            "id": "246845",
            "alleeId": 8973,
            "name": "Nośnik",
            "valuesIds": [
              "246845_622165"
            ],
            "alleeValuesIds": [
              79216
            ],
            "values": [
              "płyta DVD"
            ],
            "rangeValue": null
          },
          {
            "id": "250077",
            "alleeId": 10923,
            "name": "Gatunek",
            "valuesIds": [
              "250077_1797493"
            ],
            "alleeValuesIds": [
              258674
            ],
            "values": [
              "anime"
            ],
            "rangeValue": null
          },
          {
            "id": "225693",
            "alleeId": 5967,
            "name": "EAN (GTIN)",
            "valuesIds": [],
            "values": [
              "5901234123457"
            ],
            "rangeValue": null
          },
          {
            "id": "237218",
            "alleeId": 7939,
            "name": "Tytuł",
            "valuesIds": [],
            "values": [
              "Podróż na Księżyc"
            ],
            "rangeValue": null
          }
        ],
        "images": [
          "https://cdn.allee.pl/img/sandbox/9a16623650ab051ba0d7-1200.webp"
        ]
      },
      "responsibleProducer": {
        "type": "ID",
        "id": "472bad66-e704-4344-a2d6-9bd85b1f9a5e"
      },
      "responsiblePerson": null,
      "safetyInformation": {
        "type": "TEXT",
        "description": "Produkt bezpieczny w normalnym użytkowaniu. Przechowywać z dala od źródeł ciepła."
      }
    }
  ],
  "parameters": [
    {
      "id": "11323",
      "alleeId": 669,
      "name": "Stan",
      "valuesIds": [
        "11323_1"
      ],
      "alleeValuesIds": [
        6386
      ],
      "values": [
        "Nowy"
      ],
      "rangeValue": null
    }
  ],
  "sellingMode": {
    "format": "BUY_NOW",
    "price": {
      "amount": "44.90",
      "currency": "PLN"
    }
  },
  "stock": {
    "available": 8,
    "unit": "UNIT"
  },
  "publication": {
    "status": "ACTIVE",
    "endedBy": null
  },
  "external": {
    "id": "FILM-21ef85-1"
  },
  "delivery": {
    "handlingTime": "PT24H",
    "shippingRates": {
      "id": "797d2e65-cb23-4a16-98e9-d6f2a399839a"
    }
  },
  "afterSalesServices": {
    "returnPolicy": {
      "id": "0d2fcf15-119d-479c-9d97-ba1794013def"
    },
    "warranty": null,
    "impliedWarranty": {
      "id": "d82f8496-f284-4cdf-9575-242222870c5f"
    }
  },
  "taxSettings": {
    "rates": [
      {
        "rate": "23.00",
        "countryCode": "PL"
      }
    ]
  },
  "payments": {
    "invoice": "VAT"
  },
  "images": [
    "https://cdn.allee.pl/img/sandbox/9a16623650ab051ba0d7-1200.webp"
  ],
  "description": {
    "sections": [
      {
        "items": [
          {
            "type": "TEXT",
            "content": "<p>Opis</p><p>Film na płycie DVD, wydanie kolekcjonerskie, nowy w folii.</p><p>• Region 2<br>• Język: polski</p>"
          }
        ]
      }
    ]
  },
  "location": {
    "city": "Warszawa",
    "countryCode": "PL",
    "postCode": "00-001",
    "province": "MAZOWIECKIE"
  },
  "validation": {
    "errors": [],
    "warnings": []
  },
  "createdAt": "2026-11-10T11:10:03.000Z",
  "updatedAt": "2026-11-10T11:10:03.000Z",
  "allee": {
    "url": "https://allee.pl/oferta/podroz-na-ksiezyc-dvd-wydanie-kolekcjonerskie-900000000000021",
    "endedReason": null,
    "imagesPending": 0
  }
}

Lista ofert

GET /sale/offers

Allegro + rozszerzeniaallegro:api:sale:offers:readlimit: read

Wszystkie oferty sprzedawcy (z API, panelu i integracji). Filtry jak w Allegro; parametry z wieloma wartościami możesz powtórzyć albo rozdzielić przecinkiem.

Zgodność: zgodna z Allegro REST API, z rozszerzeniami allee (pola allee.*, alleeId) — GET /sale/offers.
Uprawnienie: zakres allegro:api:sale:offers:read.
Grupa limitu: read.

Parametry zapytania

offset integer

Ile pozycji pominąć.

limit integer

Ile pozycji zwrócić (1–1000, domyślnie 100).

publication.status array<PublicationStatus>

Status publikacji.

external.id array<string>

SKU (do 1000).

offer.id array<string>

Id ofert (do 1000).

name string

Fragment tytułu (bez wielkości liter).

category.id array<string>

Kategoria Allegro.

category.alleeId array<string>

Kategoria allee.

sellingMode.format string

Format.

Wartości: BUY_NOW, AUCTION
sellingMode.price.amount.gte string

Cena od.

sellingMode.price.amount.lte string

Cena do.

stock.available.gte integer

Sztuk od.

stock.available.lte integer

Sztuk do.

delivery.shippingRates.id array<string>

Cennik dostawy.

sort string

Sortowanie („-” = malejąco); domyślnie po id.

Wartości: sellingMode.price.amount, -sellingMode.price.amount, stock.available, -stock.available, stock.sold, -stock.sold

Odpowiedzi

200 Oferty. · OfferList
offers array<OfferListItem> zawsze
Pola obiektu
id string zawsze
name string zawsze
category CategoryRef zawsze

Kategoria — oba identyfikatory.

Pola obiektu
id string · null zawsze

Identyfikator kategorii Allegro (bywa liczbą, bywa UUID).

alleeId integer zawsze

Identyfikator kategorii allee.

primaryImage object · null zawsze
Pola obiektu
url string · uri zawsze
sellingMode object zawsze
Pola obiektu
format string zawsze
Wartości: BUY_NOW, AUCTION
price Money zawsze

Kwota (kształt Allegro).

Pola obiektu
amount string zawsze

Kwota z dwoma miejscami po przecinku, kropka dziesiętna.

currency string zawsze

Waluta (allee.pl: tylko PLN).

Wartości: PLN
stock object zawsze
Pola obiektu
available integer zawsze
sold integer zawsze

Sprzedane w ostatnich 30 dniach (bez anulowanych i zwróconych).

publication object zawsze
Pola obiektu
status PublicationStatus zawsze

INACTIVE = szkic, ACTIVATING = czeka na zdjęcia, ACTIVE = widoczna i kupowalna, ENDED = zakończona.

Wartości: INACTIVE, ACTIVATING, ACTIVE, ENDED
endedBy string · null zawsze
Wartości: USER, EMPTY_STOCK, ADMIN, EXPIRATION, null
external object · null zawsze
Pola obiektu
id string zawsze
count integer zawsze

Ofert na tej stronie.

totalCount integer zawsze

Wszystkich pasujących.

Błędy

HTTPKodZnaczenie
400VALIDATION_ERRORZła wartość parametru zapytania (400) albo pola treści (422); path wskazuje miejsce.
401invalid_tokenBrak, zły, wygasły albo odwołany token lub klucz (format OAuth, nagłówek WWW-Authenticate).
403ACCOUNT_INACTIVEKonto sprzedawcy jest nieaktywne.
403AccessDeniedBrak zakresu albo zasób innego sprzedawcy.
403KEY_QUARANTINEDKwarantanna: działa tylko odczyt (wykryto nietypowe użycie).
403KEY_SUSPENDEDKlucz albo dostęp aplikacji wstrzymany (przez sprzedawcę albo ochronę).
429TOO_MANY_REQUESTSPrzekroczony limit (minutowy, grupy operacji albo IP).
500INTERNAL_ERRORBłąd serwera allee.
Przykład
curl -sS -X GET "${ALLEE_API_URL:-https://api.allee.pl}/sale/offers?publication.status=ACTIVE&limit=20&offset=0" \
  -H "Authorization: Bearer $ALLEE_API_KEY" \
  -H "Accept: application/vnd.allegro.public.v1+json" \
  -w '\nHTTP %{http_code}\n'
Odpowiedź (środowisko testowe)
HTTP 200 application/vnd.allegro.public.v1+json
{
  "offers": [
    {
      "id": "900000000000001",
      "name": "Produkt demo 01 – Projekty wnętrz",
      "category": {
        "id": "319697",
        "alleeId": 941
      },
      "primaryImage": {
        "url": "https://cdn.allee.pl/img/u/980000001/1f93e0d0ce5c0868cee3-1200.webp"
      },
      "sellingMode": {
        "format": "BUY_NOW",
        "price": {
          "amount": "19.99",
          "currency": "PLN"
        }
      },
      "stock": {
        "available": 25,
        "sold": 0
      },
      "publication": {
        "status": "ACTIVE",
        "endedBy": null
      },
      "external": {
        "id": "DEMO-01"
      }
    },
    {
      "id": "900000000000002",
      "name": "Produkt demo 02 – Bulwy, cebulki, kłącza",
      "category": {
        "id": "12922",
        "alleeId": 1739
      },
      "primaryImage": {
        "url": "https://cdn.allee.pl/img/u/980000001/0108cb32c6569aad69db-1200.webp"
      },
      "sellingMode": {
        "format": "BUY_NOW",
        "price": {
          "amount": "29.90",
          "currency": "PLN"
        }
      },
      "stock": {
        "available": 25,
        "sold": 0
      },
      "publication": {
        "status": "ACTIVE",
        "endedBy": null
      },
      "external": {
        "id": "DEMO-02"
      }
    },
    {
      "id": "900000000000003",
      "name": "Produkt demo 03 – Byliny ozdobne",
      "category": {
        "id": "99806",
        "alleeId": 1755
      },
      "primaryImage": {
        "url": "https://cdn.allee.pl/img/u/980000001/521d588b620db4503484-1200.webp"
      },
      "sellingMode": {
        "format": "BUY_NOW",
        "price": {
          "amount": "49.00",
          "currency": "PLN"
        }
      },
      "stock": {
        "available": 25,
        "sold": 0
      },
      "publication": {
        "status": "ACTIVE",
        "endedBy": null
      },
      "external": {
        "id": "DEMO-03"
      }
    },
    {
      "id": "900000000000004",
      "name": "Produkt demo 04 – Drzewa i krzewy iglaste",
      "category": {
        "id": "99745",
        "alleeId": 2123
      },
      "primaryImage": {
        "url": "https://cdn.allee.pl/img/u/980000001/974af1fae322953c9a7e-1200.webp"
      },
      "sellingMode": {
        "format": "BUY_NOW",
        "price": {
          "amount": "79.99",
          "currency": "PLN"
        }
      },
      "stock": {
        "available": 25,
        "sold": 0
      },
      "publication": {
        "status": "ACTIVE",
        "endedBy": null
      },
      "external": {
        "id": "DEMO-04"
      }
    },
    {
      "id": "900000000000005",
      "name": "Produkt demo 05 – Złote numery",
      "category": {
        "id": "310073",
        "alleeId": 1296
      },
      "primaryImage": {
        "url": "https://cdn.allee.pl/img/u/980000001/c57b491b20ba66fe8ff7-1200.webp"
      },
      "sellingMode": {
        "format": "BUY_NOW",
        "price": {
          "amount": "99.00",
          "currency": "PLN"
        }
      },
      "stock": {
        "available": 25,
        "sold": 0
      },
      "publication": {
        "status": "ACTIVE",
        "endedBy": null
      },
      "external": {
        "id": "DEMO-05"
      }
    },
    {
      "id": "900000000000006",
      "name": "Produkt demo 06 – Etui i pokrowce",
      "category": {
        "id": "353",
        "alleeId": 2220
      },
      "primaryImage": {
        "url": "https://cdn.allee.pl/img/u/980000001/518b2c3652686f357b3b-1200.webp"
      },
      "sellingMode": {
        "format": "BUY_NOW",
        "price": {
          "amount": "129.00",
          "currency": "PLN"
        }
      },
      "stock": {
        "available": 25,
        "sold": 0
      },
      "publication": {
        "status": "ACTIVE",
        "endedBy": null
      },
      "external": {
        "id": "DEMO-06"
      }
    },
    {
      "id": "900000000000007",
      "name": "Produkt demo 07 – Dresy kompletne",
      "category": {
        "id": "76039",
        "alleeId": 2103
      },
      "primaryImage": {
        "url": "https://cdn.allee.pl/img/u/980000001/29d58c570b4c85084c70-1200.webp"
      },
      "sellingMode": {
        "format": "BUY_NOW",
        "price": {
          "amount": "15.50",
          "currency": "PLN"
        }
      },
      "stock": {
        "available": 25,
        "sold": 0
      },
      "publication": {
        "status": "ACTIVE",
        "endedBy": null
      },
      "external": {
        "id": "DEMO-07"
      }
    },
    {
      "id": "900000000000008",
      "name": "Produkt demo 08 – Dresy kompletne",
      "category": {
        "id": "87844",
        "alleeId": 2104
      },
      "primaryImage": {
        "url": "https://cdn.allee.pl/img/u/980000001/5b602fdfbcc60880f7b9-1200.webp"
      },
      "sellingMode": {
        "format": "BUY_NOW",
        "price": {
          "amount": "249.00",
          "currency": "PLN"
        }
      },
      "stock": {
        "available": 25,
        "sold": 0
      },
      "publication": {
        "status": "ACTIVE",
        "endedBy": null
      },
      "external": {
        "id": "DEMO-08"
      }
    },
    {
      "id": "900000000000009",
      "name": "Produkt demo 09 – Wąsy i brody",
      "category": {
        "id": "319923",
        "alleeId": 11907
      },
      "primaryImage": {
        "url": "https://cdn.allee.pl/img/u/980000001/50e5775d08ce8523d94e-1200.webp"
      },
      "sellingMode": {
        "format": "BUY_NOW",
        "price": {
          "amount": "9.99",
          "currency": "PLN"
        }
      },
      "stock": {
        "available": 25,
        "sold": 0
      },
      "publication": {
        "status": "ACTIVE",
        "endedBy": null
      },
      "external": {
        "id": "DEMO-09"
      }
    },
    {
      "id": "900000000000010",
      "name": "Produkt demo 10 – Gadżety kolekcjonerskie",
      "category": {
        "id": "321371",
        "alleeId": 368
      },
      "
… (skrócono — pełna odpowiedź ma 12 KB)

Oferty z brakującymi parametrami

GET /sale/offers/unfilled-parameters

zgodna z Allegroallegro:api:sale:offers:readlimit: read

Oferty, w których brakuje parametrów kategorii (wymaganych albo zalecanych) — uzupełnij je PATCH-em, by poprawić widoczność.

Zgodność: zgodna z Allegro REST API (ten sam kształt) — GET /sale/offers/unfilled-parameters.
Uprawnienie: zakres allegro:api:sale:offers:read.
Grupa limitu: read.

Parametry zapytania

offset integer

Ile pozycji pominąć.

limit integer

Ile pozycji zwrócić (1–1000, domyślnie 100).

offer.id array<string>

Tylko te oferty.

parameterType string

Rodzaj parametrów.

Wartości: REQUIRED, NON_REQUIRED

Odpowiedzi

200 Oferty i brakujące parametry. · UnfilledParametersList
offers array<object> zawsze
Pola obiektu
id string zawsze
parameters array<object> zawsze
Pola obiektu
id string zawsze
alleeId integer zawsze
name string zawsze
required boolean zawsze
count integer zawsze
totalCount integer zawsze

Błędy

HTTPKodZnaczenie
400VALIDATION_ERRORZła wartość parametru zapytania (400) albo pola treści (422); path wskazuje miejsce.
401invalid_tokenBrak, zły, wygasły albo odwołany token lub klucz (format OAuth, nagłówek WWW-Authenticate).
403ACCOUNT_INACTIVEKonto sprzedawcy jest nieaktywne.
403AccessDeniedBrak zakresu albo zasób innego sprzedawcy.
403KEY_QUARANTINEDKwarantanna: działa tylko odczyt (wykryto nietypowe użycie).
403KEY_SUSPENDEDKlucz albo dostęp aplikacji wstrzymany (przez sprzedawcę albo ochronę).
429TOO_MANY_REQUESTSPrzekroczony limit (minutowy, grupy operacji albo IP).
500INTERNAL_ERRORBłąd serwera allee.
Przykład
curl -sS -X GET "${ALLEE_API_URL:-https://api.allee.pl}/sale/offers/unfilled-parameters?limit=20" \
  -H "Authorization: Bearer $ALLEE_API_KEY" \
  -H "Accept: application/vnd.allegro.public.v1+json" \
  -w '\nHTTP %{http_code}\n'
Odpowiedź (środowisko testowe)
HTTP 200 application/vnd.allegro.public.v1+json
{
  "offers": [
    {
      "id": "900000000000001",
      "parameters": [
        {
          "id": "225693",
          "alleeId": 5967,
          "name": "EAN (GTIN)",
          "required": false
        },
        {
          "id": "224017",
          "alleeId": 5647,
          "name": "Kod producenta",
          "required": false
        },
        {
          "id": "250792",
          "alleeId": 11529,
          "name": "Kod taryfy celnej",
          "required": false
        },
        {
          "id": "17448",
          "alleeId": 811,
          "name": "Waga produktu z opakowaniem jednostkowym",
          "required": false
        }
      ]
    },
    {
      "id": "900000000000002",
      "parameters": [
        {
          "id": "447",
          "alleeId": 121,
          "name": "Cykl rozwojowy rośliny",
          "required": false
        },
        {
          "id": "5187",
          "alleeId": 354,
          "name": "Czas sadzenia",
          "required": false
        },
        {
          "id": "229205",
          "alleeId": 6525,
          "name": "Stan opakowania",
          "required": false
        },
        {
          "id": "212686",
          "alleeId": 3824,
          "name": "Styl",
          "required": false
        },
        {
          "id": "247345",
          "alleeId": 9062,
          "name": "Cechy charakterystyczne",
          "required": false
        },
        {
          "id": "25548",
          "alleeId": 1053,
          "name": "Roślina w postaci",
          "required": false
        },
        {
          "id": "249248",
          "alleeId": 10304,
          "name": "Kraj",
          "required": false
        },
        {
          "id": "249410",
          "alleeId": 10418,
          "name": "Nazwa łacińska",
          "required": false
        },
        {
          "id": "225693",
          "alleeId": 5967,
          "name": "EAN (GTIN)",
          "required": false
        },
        {
          "id": "224017",
          "alleeId": 5647,
          "name": "Kod producenta",
          "required": false
        },
        {
          "id": "250792",
          "alleeId": 11529,
          "name": "Kod taryfy celnej",
          "required": false
        },
        {
          "id": "247632",
          "alleeId": 9132,
          "name": "Liczba sztuk w opakowaniu",
          "required": false
        },
        {
          "id": "249511",
          "alleeId": 10488,
          "name": "Numer paszportu (sekcja C)",
          "required": false
        },
        {
          "id": "17448",
          "alleeId": 811,
          "name": "Waga produktu z opakowaniem jednostkowym",
          "required": false
        }
      ]
    },
    {
      "id": "900000000000003",
      "parameters": [
        {
          "id": "447",
          "alleeId": 121,
          "name": "Cykl rozwojowy rośliny",
          "required": false
        },
        {
          "id": "229205",
          "alleeId": 6525,
          "name": "Stan opakowania",
          "required": false
        },
        {
          "id": "212686",
          "alleeId": 3824,
          "name": "Styl",
          "required": false
        },
        {
          "id": "247345",
          "alleeId": 9062,
          "name": "Cechy charakterystyczne",
          "required": false
        },
        {
          "id": "249248",
          "alleeId": 10304,
          "name": "Kraj",
          "required": false
        },
        {
          "id": "249410",
          "alleeId": 10418,
          "name": "Nazwa łacińska",
          "required": false
        },
        {
          "id": "225693",
          "alleeId": 5967,
          "name": "EAN (GTIN)",
          "required": false
        },
        {
          "id": "224017",
          "alleeId": 5647,
          "name": "Kod producenta",
          "required": false
        },
        {
          "id": "250792",
          "alleeId": 11529,
          "name": "Kod taryfy celnej",
          "required": false
        },
        {
          "id": "249511",
          "alleeId": 10488,
          "name": "Numer paszportu (sekcja C)",
          "required": false
        },
        {
          "id": "17448",
          "alleeId": 811,
          "name": "Waga produktu z opakowaniem jednostkowym",
          "required": false
        },
        {
          "id": "11865",
          "alleeId": 699,
          "name": "Wysokość sadzonki",
          "required": false
        }
      ]
    },
    {
      "id": "900000000000004",
      "parameters": [
        {
          "id": "229205",
          "alleeId": 6525,
          "name": "Stan opakowania",
          "required": false
        },
        {
          "id": "212686",
          "alleeId": 3824,
          "name": "Styl",
          "required": false
        },
        {
          "id": "247345",
          "alleeId": 9062,
          "name": "Cechy charakterystyczne",
          "required": false
        },
        {
          "id": "249248",
          "alleeId": 10304,
          "name": "Kraj",
          "required": false
        },
        {
          "id": "249410",
          "alleeId": 10418,
          "name": "Nazwa łacińska",
          "required": false
        },
        {
          "id": "248914",
          "alleeId": 10076,
          "name": "Producent",
          "required": false
        },
        {
          "id": "225693",
          "alleeId": 5967,
          "name": "EAN (GTIN)",
          "required": false
        },
        {
          "id": "224017",
          "alleeId": 5647,
          "name": "Kod producenta",
          "required": false
        },
        {
          "id": "250792",
          "alleeId": 11529,
          "name": "Kod taryfy celnej",
          "required": false
        },
        {
          "id": "249511",
          "alleeId": 10488,
          "name": "Numer paszportu (sekcja C)",
          "required": false
        },
        {
          "id": "17448",
          "alleeId": 811,
          "na
… (skrócono — pełna odpowiedź ma 34 KB)

Czy oferta da się kupić

GET /sale/offers/{offerId}/buyability

tylko alleeallegro:api:sale:offers:readlimit: read

Problemy liczone z prawdziwego stanu oferty: nieaktywna, brak sztuk, brak GPSR, brak cennika.

Zgodność: tylko allee — Rozszerzenie allee.
Uprawnienie: zakres allegro:api:sale:offers:read.
Grupa limitu: read.

Parametry ścieżki

offerId string wymagany

Identyfikator oferty (liczba w tekście).

Odpowiedzi

200 Wynik. · Buyability
buyable boolean zawsze

Czy oferta da się teraz kupić.

problems array<object> zawsze
Pola obiektu
code string zawsze
Wartości: OFFER_NOT_ACTIVE, OUT_OF_STOCK, RESPONSIBLE_PRODUCER_NOT_SPECIFIED, SAFETY_INFO_NOT_DEFINED, SHIPPING_RATES_NOT_FOUND, DELIVERY_NOT_CONFIGURED
message string zawsze

Błędy

HTTPKodZnaczenie
401invalid_tokenBrak, zły, wygasły albo odwołany token lub klucz (format OAuth, nagłówek WWW-Authenticate).
403ACCOUNT_INACTIVEKonto sprzedawcy jest nieaktywne.
403AccessDeniedBrak zakresu albo zasób innego sprzedawcy.
403KEY_QUARANTINEDKwarantanna: działa tylko odczyt (wykryto nietypowe użycie).
403KEY_SUSPENDEDKlucz albo dostęp aplikacji wstrzymany (przez sprzedawcę albo ochronę).
404NOT_FOUNDNie ma takiego zasobu (albo należy do innego sprzedawcy — dla wątków, zwrotów i spraw odpowiedź jest ta sama).
429TOO_MANY_REQUESTSPrzekroczony limit (minutowy, grupy operacji albo IP).
500INTERNAL_ERRORBłąd serwera allee.
Przykład
curl -sS -X GET "${ALLEE_API_URL:-https://api.allee.pl}/sale/offers/900000000000021/buyability" \
  -H "Authorization: Bearer $ALLEE_API_KEY" \
  -H "Accept: application/vnd.allegro.public.v1+json" \
  -w '\nHTTP %{http_code}\n'
Odpowiedź (środowisko testowe)
HTTP 200 application/vnd.allegro.public.v1+json
{
  "buyable": true,
  "problems": []
}

Usunięcie szkicu oferty

DELETE /sale/offers/{offerId}

zgodna z Allegroallegro:api:sale:offers:writelimit: write

Usuwa wyłącznie szkic, który nigdy nie był opublikowany. Ofertę opublikowaną kończysz poleceniem END → inaczej 409 OFFER_NOT_DRAFT.

Zgodność: zgodna z Allegro REST API (ten sam kształt) — DELETE /sale/offers/{offerId}.
Uprawnienie: zakres allegro:api:sale:offers:write.
Grupa limitu: write.

Parametry ścieżki

offerId string wymagany

Identyfikator oferty (liczba w tekście).

Odpowiedzi

204 Usunięto.

Błędy

HTTPKodZnaczenie
401invalid_tokenBrak, zły, wygasły albo odwołany token lub klucz (format OAuth, nagłówek WWW-Authenticate).
403ACCOUNT_INACTIVEKonto sprzedawcy jest nieaktywne.
403AccessDeniedBrak zakresu albo zasób innego sprzedawcy.
403KEY_QUARANTINEDKwarantanna: działa tylko odczyt (wykryto nietypowe użycie).
403KEY_SUSPENDEDKlucz albo dostęp aplikacji wstrzymany (przez sprzedawcę albo ochronę).
404NOT_FOUNDNie ma takiego zasobu (albo należy do innego sprzedawcy — dla wątków, zwrotów i spraw odpowiedź jest ta sama).
409OFFER_NOT_DRAFTUsuwać można tylko szkic nigdy nieopublikowany.
429TOO_MANY_REQUESTSPrzekroczony limit (minutowy, grupy operacji albo IP).
500INTERNAL_ERRORBłąd serwera allee.
Przykład
curl -sS -X DELETE "${ALLEE_API_URL:-https://api.allee.pl}/sale/offers/900000000000022" \
  -H "Authorization: Bearer $ALLEE_API_KEY" \
  -H "Accept: application/vnd.allegro.public.v1+json" \
  -w '\nHTTP %{http_code}\n'
Odpowiedź (środowisko testowe)
HTTP 204 text/html; charset=UTF-8
(0 B: text/html; charset=UTF-8)

Zdarzenia ofert

GET /sale/offer-events

Allegro + rozszerzeniaallegro:api:sale:offers:readlimit: read

Dziennik zmian Twoich ofert: aktywacja, zmiana, zakończenie, zmiana stanu i ceny. Bez from — ostatnie 24 h; dalej odpytuj z from = id ostatniego zdarzenia. Zdarzenia pojawiają się po 5 s.

allee.reason mówi, dlaczego allee zmieniło ofertę (MODERATION, EMPTY_STOCK, IMAGE_FAILED).

Zgodność: zgodna z Allegro REST API, z rozszerzeniami allee (pola allee.*, alleeId) — GET /sale/offer-events.
Uprawnienie: zakres allegro:api:sale:offers:read.
Grupa limitu: read.

Parametry zapytania

from string

Kursor: zdarzenia po tym id.

limit integer

1–1000.

type array<string>

Filtr typów (powtórz parametr).

Odpowiedzi

200 Zdarzenia. · OfferEventList
offerEvents array<object> zawsze
Pola obiektu
id string zawsze

Kursor zdarzenia (do parametru from).

type string zawsze
Wartości: OFFER_ACTIVATED, OFFER_CHANGED, OFFER_ENDED, OFFER_STOCK_CHANGED, OFFER_PRICE_CHANGED, OFFER_ARCHIVED
occurredAt string · date-time zawsze
offer object zawsze
Pola obiektu
id string zawsze
external object · null
Pola obiektu
id string zawsze
allee object
Pola obiektu
reason string · null

Powód zmiany nadany przez allee.

Wartości: MODERATION, EMPTY_STOCK, IMAGE_FAILED, null
from string · null
to string · null

Błędy

HTTPKodZnaczenie
400VALIDATION_ERRORZła wartość parametru zapytania (400) albo pola treści (422); path wskazuje miejsce.
401invalid_tokenBrak, zły, wygasły albo odwołany token lub klucz (format OAuth, nagłówek WWW-Authenticate).
403ACCOUNT_INACTIVEKonto sprzedawcy jest nieaktywne.
403AccessDeniedBrak zakresu albo zasób innego sprzedawcy.
403KEY_QUARANTINEDKwarantanna: działa tylko odczyt (wykryto nietypowe użycie).
403KEY_SUSPENDEDKlucz albo dostęp aplikacji wstrzymany (przez sprzedawcę albo ochronę).
429TOO_MANY_REQUESTSPrzekroczony limit (minutowy, grupy operacji albo IP).
500INTERNAL_ERRORBłąd serwera allee.
Przykład
curl -sS -X GET "${ALLEE_API_URL:-https://api.allee.pl}/sale/offer-events?type=OFFER_ACTIVATED&type=OFFER_PRICE_CHANGED&type=OFFER_STOCK_CHANGED&limit=100" \
  -H "Authorization: Bearer $ALLEE_API_KEY" \
  -H "Accept: application/vnd.allegro.public.v1+json" \
  -w '\nHTTP %{http_code}\n'
Odpowiedź (środowisko testowe)
HTTP 200 application/vnd.allegro.public.v1+json
{
  "offerEvents": [
    {
      "id": "1",
      "occurredAt": "2026-11-10T11:09:53.374Z",
      "type": "OFFER_ACTIVATED",
      "offer": {
        "id": "900000000000001",
        "external": {
          "id": "DEMO-01"
        }
      },
      "allee": {
        "reason": null,
        "from": null,
        "to": "ACTIVE",
        "source": "app"
      }
    },
    {
      "id": "2",
      "occurredAt": "2026-11-10T11:09:53.382Z",
      "type": "OFFER_ACTIVATED",
      "offer": {
        "id": "900000000000002",
        "external": {
          "id": "DEMO-02"
        }
      },
      "allee": {
        "reason": null,
        "from": null,
        "to": "ACTIVE",
        "source": "app"
      }
    },
    {
      "id": "3",
      "occurredAt": "2026-11-10T11:09:53.385Z",
      "type": "OFFER_ACTIVATED",
      "offer": {
        "id": "900000000000003",
        "external": {
          "id": "DEMO-03"
        }
      },
      "allee": {
        "reason": null,
        "from": null,
        "to": "ACTIVE",
        "source": "app"
      }
    },
    {
      "id": "4",
      "occurredAt": "2026-11-10T11:09:53.387Z",
      "type": "OFFER_ACTIVATED",
      "offer": {
        "id": "900000000000004",
        "external": {
          "id": "DEMO-04"
        }
      },
      "allee": {
        "reason": null,
        "from": null,
        "to": "ACTIVE",
        "source": "app"
      }
    },
    {
      "id": "5",
      "occurredAt": "2026-11-10T11:09:53.391Z",
      "type": "OFFER_ACTIVATED",
      "offer": {
        "id": "900000000000005",
        "external": {
          "id": "DEMO-05"
        }
      },
      "allee": {
        "reason": null,
        "from": null,
        "to": "ACTIVE",
        "source": "app"
      }
    },
    {
      "id": "6",
      "occurredAt": "2026-11-10T11:09:53.398Z",
      "type": "OFFER_ACTIVATED",
      "offer": {
        "id": "900000000000006",
        "external": {
          "id": "DEMO-06"
        }
      },
      "allee": {
        "reason": null,
        "from": null,
        "to": "ACTIVE",
        "source": "app"
      }
    },
    {
      "id": "7",
      "occurredAt": "2026-11-10T11:09:53.404Z",
      "type": "OFFER_ACTIVATED",
      "offer": {
        "id": "900000000000007",
        "external": {
          "id": "DEMO-07"
        }
      },
      "allee": {
        "reason": null,
        "from": null,
        "to": "ACTIVE",
        "source": "app"
      }
    },
    {
      "id": "8",
      "occurredAt": "2026-11-10T11:09:53.413Z",
      "type": "OFFER_ACTIVATED",
      "offer": {
        "id": "900000000000008",
        "external": {
          "id": "DEMO-08"
        }
      },
      "allee": {
        "reason": null,
        "from": null,
        "to": "ACTIVE",
        "source": "app"
      }
    },
    {
      "id": "9",
      "occurredAt": "2026-11-10T11:09:53.417Z",
      "type": "OFFER_ACTIVATED",
      "offer": {
        "id": "900000000000009",
        "external": {
          "id": "DEMO-09"
        }
      },
      "allee": {
        "reason": null,
        "from": null,
        "to": "ACTIVE",
        "source": "app"
      }
    },
    {
      "id": "10",
      "occurredAt": "2026-11-10T11:09:53.420Z",
      "type": "OFFER_ACTIVATED",
      "offer": {
        "id": "900000000000010",
        "external": {
          "id": "DEMO-10"
        }
      },
      "allee": {
        "reason": null,
        "from": null,
        "to": "ACTIVE",
        "source": "app"
      }
    },
    {
      "id": "11",
      "occurredAt": "2026-11-10T11:09:53.424Z",
      "type": "OFFER_ACTIVATED",
      "offer": {
        "id": "900000000000011",
        "external": {
          "id": "DEMO-11"
        }
      },
      "allee": {
        "reason": null,
        "from": null,
        "to": "ACTIVE",
        "source": "app"
      }
    },
    {
      "id": "12",
      "occurredAt": "2026-11-10T11:09:53.429Z",
      "type": "OFFER_ACTIVATED",
      "offer": {
        "id": "900000000000012",
        "external": {
          "id": "DEMO-12"
        }
      },
      "allee": {
        "reason": null,
        "from": null,
        "to": "ACTIVE",
        "source": "app"
      }
    },
    {
      "id": "13",
      "occurredAt": "2026-11-10T11:09:53.435Z",
      "type": "OFFER_ACTIVATED",
      "offer": {
        "id": "900000000000013",
        "external": {
          "id": "DEMO-13"
        }
      },
      "allee": {
        "reason": null,
        "from": null,
        "to": "ACTIVE",
        "source": "app"
      }
    },
    {
      "id": "14",
      "occurredAt": "2026-11-10T11:09:53.441Z",
      "type": "OFFER_ACTIVATED",
      "offer": {
        "id": "900000000000014",
        "external": {
          "id": "DEMO-14"
        }
      },
      "allee": {
        "reason": null,
        "from": null,
        "to": "ACTIVE",
        "source": "app"
      }
    },
    {
      "id": "15",
      "occurredAt": "2026-11-10T11:09:53.446Z",
      "type": "OFFER_ACTIVATED",
      "offer": {
        "id": "900000000000015",
        "external": {
          "id": "DEMO-15"
        }
      },
      "allee": {
        "reason": null,
        "from": null,
        "to": "ACTIVE",
        "source": "app"
      }
    },
    {
      "id": "16",
      "occurredAt": "2026-11-10T11:09:53.451Z",
      "type": "OFFER_ACTIVATED",
      "offer": {
        "id": "900000000000016",
        "external": {
          "id": "DEMO-16"
        }
      },
      "allee": {
        "reason": null,
        "from": null,
        "to": "ACTIVE",
        "source": "app"
      }
    },
    {
      "id": "17",
      "occurredAt": "2026-11-10T11:09:53.454Z",
      "type": "OFFER_ACTIVATED",
      "offer": {
        "id": "900000000000017",
        "external": {
          "id": "DEMO-17"
        }
      },
      "allee": {
        "reason": null,
        "from": null,
        "to": "ACTIVE",
        "source": "app"
      }
    },
    {
      "id": "18",
      "occurredAt": "2026-11-10T11:09:53.457Z",

… (skrócono — pełna odpowiedź ma 7 KB)