Listingi (SKU)
Oferty adresowane SKU, z podglądem walidacji i listą problemów (Amazon Listings Items).
Wyszukiwanie listingów
GET /allee/listings
wzór Amazon SP-APIallegro:api:sale:offers:readlimit: read
Oferty z SKU, filtrowane po SKU, statusie i problemach (np. wszystkie z błędami: issueSeverity=ERROR).
Zgodność: wzorowana na Amazon Selling Partner API — Listings Items — searchListingsItems.
Uprawnienie: zakres allegro:api:sale:offers:read.
Grupa limitu: read.
Parametry zapytania
skus stringSKU rozdzielone przecinkiem (do 100).
status stringStatusy publikacji rozdzielone przecinkiem (INACTIVE, ACTIVATING, ACTIVE, ENDED).
issueSeverity stringERROR i/lub WARNING — tylko listingi z takimi problemami.
includedData stringSekcje rozdzielone przecinkiem: summaries, attributes, issues, offers, fulfillmentAvailability.
pageSize integer1–100.
pageToken stringToken następnej strony (pagination.nextToken).
Odpowiedzi
200 Listingi. · ListingSearchResult
numberOfResults integer zawszepagination object zawszePola obiektu
nextToken string · null zawszeToken następnej strony (parametr pageToken).
items array<ListingItem> zawszePola obiektu
sku string zawszesummaries array<ListingSummary>Pola obiektu
marketplaceId string zawszeallee-plofferId string zawszecategory CategoryRef zawszeKategoria — oba identyfikatory.
Pola obiektu
id string · null zawszeIdentyfikator kategorii Allegro (bywa liczbą, bywa UUID).
alleeId integer zawszeIdentyfikator kategorii allee.
status array<string> zawszeBUYABLE = da się kupić; DISCOVERABLE = widoczna.
BUYABLE, DISCOVERABLEpublicationStatus PublicationStatus zawszeINACTIVE = szkic, ACTIVATING = czeka na zdjęcia, ACTIVE = widoczna i kupowalna, ENDED = zakończona.
INACTIVE, ACTIVATING, ACTIVE, ENDEDitemName string zawszeconditionType string · null zawszeStan (nazwy Amazona).
new_new, used_good, refurbished_refurbished, used_acceptable, nullcreatedDate string · date-time zawszelastUpdatedDate string · date-time zawszemainImage object · null zawszePola obiektu
link string · uri zawszeurl string · uri zawszeattributes ListingAttributesAtrybuty listingu (płaskie, nazwy jak w schemacie kategorii GET /allee/categories/{id}/schema).
Pola obiektu
name stringTytuł (10–75 znaków).
category objectKategoria (alleeId ma pierwszeństwo).
Pola obiektu
alleeId integerid stringparameters objectParametry: klucz = id parametru Allegro (patrz schemat kategorii).
images array<string · uri>1–16 adresów.
description stringOpis (tekst, 20–20 000 znaków).
price MoneyInputKwota w żądaniu.
Pola obiektu
amount string|number zawszeKwota jako tekst „123.45” (zalecane) albo liczba.
currency stringWaluta: tylko PLN (domyślnie PLN).
PLNstock integerSztuki (0–99 999).
ean stringGTIN (EAN).
shippingRatesId string · uuidTwój cennik.
handlingTime stringPT0S, PT24H, P2D…P60D.
returnPolicyId string · nullwarrantyId string · nullimpliedWarrantyId string · nullresponsibleProducerId string · nullresponsiblePersonId string · nullsafetyInformation SafetyInformation · nullPola obiektu
type string zawszeTEXT, NO_SAFETY_INFORMATION, ATTACHMENTSdescription stringTreść informacji (dla TEXT).
taxRate string · null0.00, 5.00, 8.00, 23.00, nullinvoice string · nullVAT, VAT_MARGIN, WITHOUT_VAT, NO_INVOICE, nulllocation object · nullissues array<ListingIssue>Pola obiektu
code string zawszeKod problemu (ten sam słownik co błędy walidacji oferty).
message string zawszeseverity string zawszeERROR blokuje zapis/publikację, WARNING nie blokuje.
ERROR, WARNING, INFOattributeNames array<string> zawszeAtrybuty, których dotyczy problem.
categories array<string> zawszeGrupy problemu, np. MISSING_ATTRIBUTE, INVALID_ATTRIBUTE, GPSR.
path string · nullPole w kształcie Allegro (np. productSet[0].product.parameters).
messageId integerNumer komunikatu wsadu (tylko w raporcie wsadu).
offers array<object>Pola obiektu
marketplaceId string zawszeallee-plofferType string zawszeB2Cprice Money zawszeKwota (kształt Allegro).
Pola obiektu
amount string zawszeKwota z dwoma miejscami po przecinku, kropka dziesiętna.
currency string zawszeWaluta (allee.pl: tylko PLN).
PLNsellingFormat string zawszeBUY_NOW, AUCTIONfulfillmentAvailability array<object>Pola obiektu
fulfillmentChannelCode string zawszeDEFAULTquantity integer zawszehandlingTime string · null zawszeBłędy
| HTTP | Kod | Znaczenie |
|---|---|---|
| 400 | VALIDATION_ERROR | Zła wartość parametru zapytania (400) albo pola treści (422); path wskazuje miejsce. |
| 401 | invalid_token | Brak, zły, wygasły albo odwołany token lub klucz (format OAuth, nagłówek WWW-Authenticate). |
| 403 | ACCOUNT_INACTIVE | Konto sprzedawcy jest nieaktywne. |
| 403 | AccessDenied | Brak zakresu albo zasób innego sprzedawcy. |
| 403 | KEY_QUARANTINED | Kwarantanna: działa tylko odczyt (wykryto nietypowe użycie). |
| 403 | KEY_SUSPENDED | Klucz albo dostęp aplikacji wstrzymany (przez sprzedawcę albo ochronę). |
| 429 | TOO_MANY_REQUESTS | Przekroczony limit (minutowy, grupy operacji albo IP). |
| 500 | INTERNAL_ERROR | Błąd serwera allee. |
curl -sS -X GET "${ALLEE_API_URL:-https://api.allee.pl}/allee/listings?skus=FILM-21ef85-1%2CFILM-21ef85-3&includedData=summaries%2Cissues&pageSize=20" \
-H "Authorization: Bearer $ALLEE_API_KEY" \
-H "Accept: application/vnd.allegro.public.v1+json" \
-w '\nHTTP %{http_code}\n'<?php
// allee API: GET /allee/listings (PHP 8, rozszerzenie curl)
$base = getenv('ALLEE_API_URL') ?: 'https://api.allee.pl';
$ch = curl_init($base . '/allee/listings?skus=FILM-21ef85-1%2CFILM-21ef85-3&includedData=summaries%2Cissues&pageSize=20');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('ALLEE_API_KEY'),
'Accept: application/vnd.allegro.public.v1+json',
],
CURLOPT_RETURNTRANSFER => true,
]);
$odp = curl_exec($ch);
echo 'HTTP ', curl_getinfo($ch, CURLINFO_RESPONSE_CODE), "\n", $odp, "\n";# allee API: GET /allee/listings (Python 3, biblioteka requests)
import os
import requests
BASE = os.environ.get("ALLEE_API_URL", "https://api.allee.pl")
headers = {
"Authorization": "Bearer " + os.environ["ALLEE_API_KEY"],
"Accept": "application/vnd.allegro.public.v1+json",
}
r = requests.request("GET", BASE + "/allee/listings?skus=FILM-21ef85-1%2CFILM-21ef85-3&includedData=summaries%2Cissues&pageSize=20", headers=headers, timeout=60, allow_redirects=False)
print("HTTP", r.status_code)
print(r.text)// allee API: GET /allee/listings (Node.js 18+, wbudowany fetch; plik .mjs)
const BASE = process.env.ALLEE_API_URL ?? "https://api.allee.pl";
const res = await fetch(`${BASE}/allee/listings?skus=FILM-21ef85-1%2CFILM-21ef85-3&includedData=summaries%2Cissues&pageSize=20`, {
method: "GET",
headers: {
Authorization: `Bearer ${process.env.ALLEE_API_KEY}`,
"Accept": "application/vnd.allegro.public.v1+json",
},
redirect: "manual",
});
console.log("HTTP", res.status);
console.log(await res.text());// allee API: GET /allee/listings (C#, .NET 8+, HttpClient)
using System.Net.Http.Headers;
using System.Text;
var baseUrl = Environment.GetEnvironmentVariable("ALLEE_API_URL") ?? "https://api.allee.pl";
using var http = new HttpClient(new HttpClientHandler { AllowAutoRedirect = false });
using var req = new HttpRequestMessage(new HttpMethod("GET"), baseUrl + "/allee/listings?skus=FILM-21ef85-1%2CFILM-21ef85-3&includedData=summaries%2Cissues&pageSize=20");
req.Headers.Authorization = new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("ALLEE_API_KEY"));
req.Headers.Accept.ParseAdd("application/vnd.allegro.public.v1+json");
using var res = await http.SendAsync(req);
Console.WriteLine($"HTTP {(int)res.StatusCode}");
Console.WriteLine(await res.Content.ReadAsStringAsync());// allee API: GET /allee/listings (Java 11+, java.net.http; uruchom: java Main.java)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
String base = System.getenv().getOrDefault("ALLEE_API_URL", "https://api.allee.pl");
HttpRequest req = HttpRequest.newBuilder(URI.create(base + "/allee/listings?skus=FILM-21ef85-1%2CFILM-21ef85-3&includedData=summaries%2Cissues&pageSize=20"))
.header("Authorization", "Bearer " + System.getenv("ALLEE_API_KEY"))
.header("Accept", "application/vnd.allegro.public.v1+json")
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpClient http = HttpClient.newBuilder().version(HttpClient.Version.HTTP_1_1).build();
HttpResponse<String> res = http.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println("HTTP " + res.statusCode());
System.out.println(res.body());
}
}// allee API: GET /allee/listings (Go 1.20+, net/http; uruchom: go run main.go)
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
base := os.Getenv("ALLEE_API_URL")
if base == "" {
base = "https://api.allee.pl"
}
req, err := http.NewRequest("GET", base+"/allee/listings?skus=FILM-21ef85-1%2CFILM-21ef85-3&includedData=summaries%2Cissues&pageSize=20", nil)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer "+os.Getenv("ALLEE_API_KEY"))
req.Header.Set("Accept", "application/vnd.allegro.public.v1+json")
klient := &http.Client{CheckRedirect: func(*http.Request, []*http.Request) error { return http.ErrUseLastResponse }}
res, err := klient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
dane, err := io.ReadAll(res.Body)
if err != nil {
panic(err)
}
fmt.Println("HTTP", res.StatusCode)
fmt.Println(string(dane))
}application/vnd.allegro.public.v1+json{
"numberOfResults": 2,
"pagination": {
"nextToken": null
},
"items": [
{
"sku": "FILM-21ef85-1",
"summaries": [
{
"marketplaceId": "allee-pl",
"offerId": "900000000000021",
"category": {
"alleeId": 35,
"id": "20585"
},
"status": [
"DISCOVERABLE",
"BUYABLE"
],
"publicationStatus": "ACTIVE",
"itemName": "Podróż na Księżyc DVD wydanie kolekcjonerskie",
"conditionType": "new_new",
"createdDate": "2026-11-10T11:10:03.000Z",
"lastUpdatedDate": "2026-11-10T11:10:04.000Z",
"mainImage": {
"link": "https://cdn.allee.pl/img/sandbox/9a16623650ab051ba0d7-1200.webp"
},
"url": "https://allee.pl/oferta/podroz-na-ksiezyc-dvd-wydanie-kolekcjonerskie-900000000000021"
}
],
"issues": []
},
{
"sku": "FILM-21ef85-3",
"summaries": [
{
"marketplaceId": "allee-pl",
"offerId": "900000000000024",
"category": {
"alleeId": 35,
"id": "20585"
},
"status": [
"DISCOVERABLE",
"BUYABLE"
],
"publicationStatus": "ACTIVE",
"itemName": "Metropolis DVD wersja odrestaurowana",
"conditionType": "new_new",
"createdDate": "2026-11-10T11:10:04.000Z",
"lastUpdatedDate": "2026-11-10T11:10:04.000Z",
"mainImage": {
"link": "https://cdn.allee.pl/img/sandbox/9a16623650ab051ba0d7-1200.webp"
},
"url": "https://allee.pl/oferta/metropolis-dvd-wersja-odrestaurowana-900000000000024"
}
],
"issues": []
}
]
}Listing po SKU
GET /allee/listings/{sku}
wzór Amazon SP-APIallegro:api:sale:offers:readlimit: read
Oferta po SKU w wybranych sekcjach. issues = problemy liczone z tych samych reguł co walidacja i panel Jakość.
Zgodność: wzorowana na Amazon Selling Partner API — Listings Items — getListingsItem.
Uprawnienie: zakres allegro:api:sale:offers:read.
Grupa limitu: read.
Parametry ścieżki
sku string wymaganySKU (external.id): 1–100 znaków, bez „/” i znaków sterujących. W adresie zakoduj (np. spacja → %20).
Parametry zapytania
includedData stringSekcje rozdzielone przecinkiem: summaries, attributes, issues, offers, fulfillmentAvailability.
Odpowiedzi
200 Listing. · ListingItem
sku string zawszesummaries array<ListingSummary>Pola obiektu
marketplaceId string zawszeallee-plofferId string zawszecategory CategoryRef zawszeKategoria — oba identyfikatory.
Pola obiektu
id string · null zawszeIdentyfikator kategorii Allegro (bywa liczbą, bywa UUID).
alleeId integer zawszeIdentyfikator kategorii allee.
status array<string> zawszeBUYABLE = da się kupić; DISCOVERABLE = widoczna.
BUYABLE, DISCOVERABLEpublicationStatus PublicationStatus zawszeINACTIVE = szkic, ACTIVATING = czeka na zdjęcia, ACTIVE = widoczna i kupowalna, ENDED = zakończona.
INACTIVE, ACTIVATING, ACTIVE, ENDEDitemName string zawszeconditionType string · null zawszeStan (nazwy Amazona).
new_new, used_good, refurbished_refurbished, used_acceptable, nullcreatedDate string · date-time zawszelastUpdatedDate string · date-time zawszemainImage object · null zawszePola obiektu
link string · uri zawszeurl string · uri zawszeattributes ListingAttributesAtrybuty listingu (płaskie, nazwy jak w schemacie kategorii GET /allee/categories/{id}/schema).
Pola obiektu
name stringTytuł (10–75 znaków).
category objectKategoria (alleeId ma pierwszeństwo).
Pola obiektu
alleeId integerid stringparameters objectParametry: klucz = id parametru Allegro (patrz schemat kategorii).
images array<string · uri>1–16 adresów.
description stringOpis (tekst, 20–20 000 znaków).
price MoneyInputKwota w żądaniu.
Pola obiektu
amount string|number zawszeKwota jako tekst „123.45” (zalecane) albo liczba.
currency stringWaluta: tylko PLN (domyślnie PLN).
PLNstock integerSztuki (0–99 999).
ean stringGTIN (EAN).
shippingRatesId string · uuidTwój cennik.
handlingTime stringPT0S, PT24H, P2D…P60D.
returnPolicyId string · nullwarrantyId string · nullimpliedWarrantyId string · nullresponsibleProducerId string · nullresponsiblePersonId string · nullsafetyInformation SafetyInformation · nullPola obiektu
type string zawszeTEXT, NO_SAFETY_INFORMATION, ATTACHMENTSdescription stringTreść informacji (dla TEXT).
taxRate string · null0.00, 5.00, 8.00, 23.00, nullinvoice string · nullVAT, VAT_MARGIN, WITHOUT_VAT, NO_INVOICE, nulllocation object · nullissues array<ListingIssue>Pola obiektu
code string zawszeKod problemu (ten sam słownik co błędy walidacji oferty).
message string zawszeseverity string zawszeERROR blokuje zapis/publikację, WARNING nie blokuje.
ERROR, WARNING, INFOattributeNames array<string> zawszeAtrybuty, których dotyczy problem.
categories array<string> zawszeGrupy problemu, np. MISSING_ATTRIBUTE, INVALID_ATTRIBUTE, GPSR.
path string · nullPole w kształcie Allegro (np. productSet[0].product.parameters).
messageId integerNumer komunikatu wsadu (tylko w raporcie wsadu).
offers array<object>Pola obiektu
marketplaceId string zawszeallee-plofferType string zawszeB2Cprice Money zawszeKwota (kształt Allegro).
Pola obiektu
amount string zawszeKwota z dwoma miejscami po przecinku, kropka dziesiętna.
currency string zawszeWaluta (allee.pl: tylko PLN).
PLNsellingFormat string zawszeBUY_NOW, AUCTIONfulfillmentAvailability array<object>Pola obiektu
fulfillmentChannelCode string zawszeDEFAULTquantity integer zawszehandlingTime string · null zawszeBłędy
| HTTP | Kod | Znaczenie |
|---|---|---|
| 400 | VALIDATION_ERROR | Zła wartość parametru zapytania (400) albo pola treści (422); path wskazuje miejsce. |
| 401 | invalid_token | Brak, zły, wygasły albo odwołany token lub klucz (format OAuth, nagłówek WWW-Authenticate). |
| 403 | ACCOUNT_INACTIVE | Konto sprzedawcy jest nieaktywne. |
| 403 | AccessDenied | Brak zakresu albo zasób innego sprzedawcy. |
| 403 | KEY_QUARANTINED | Kwarantanna: działa tylko odczyt (wykryto nietypowe użycie). |
| 403 | KEY_SUSPENDED | Klucz albo dostęp aplikacji wstrzymany (przez sprzedawcę albo ochronę). |
| 404 | NOT_FOUND | Nie ma takiego zasobu (albo należy do innego sprzedawcy — dla wątków, zwrotów i spraw odpowiedź jest ta sama). |
| 429 | TOO_MANY_REQUESTS | Przekroczony limit (minutowy, grupy operacji albo IP). |
| 500 | INTERNAL_ERROR | Błąd serwera allee. |
curl -sS -X GET "${ALLEE_API_URL:-https://api.allee.pl}/allee/listings/FILM-21ef85-3?includedData=summaries%2Cattributes%2Cissues%2Coffers%2CfulfillmentAvailability" \
-H "Authorization: Bearer $ALLEE_API_KEY" \
-H "Accept: application/vnd.allegro.public.v1+json" \
-w '\nHTTP %{http_code}\n'<?php
// allee API: GET /allee/listings/FILM-21ef85-3 (PHP 8, rozszerzenie curl)
$base = getenv('ALLEE_API_URL') ?: 'https://api.allee.pl';
$ch = curl_init($base . '/allee/listings/FILM-21ef85-3?includedData=summaries%2Cattributes%2Cissues%2Coffers%2CfulfillmentAvailability');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('ALLEE_API_KEY'),
'Accept: application/vnd.allegro.public.v1+json',
],
CURLOPT_RETURNTRANSFER => true,
]);
$odp = curl_exec($ch);
echo 'HTTP ', curl_getinfo($ch, CURLINFO_RESPONSE_CODE), "\n", $odp, "\n";# allee API: GET /allee/listings/FILM-21ef85-3 (Python 3, biblioteka requests)
import os
import requests
BASE = os.environ.get("ALLEE_API_URL", "https://api.allee.pl")
headers = {
"Authorization": "Bearer " + os.environ["ALLEE_API_KEY"],
"Accept": "application/vnd.allegro.public.v1+json",
}
r = requests.request("GET", BASE + "/allee/listings/FILM-21ef85-3?includedData=summaries%2Cattributes%2Cissues%2Coffers%2CfulfillmentAvailability", headers=headers, timeout=60, allow_redirects=False)
print("HTTP", r.status_code)
print(r.text)// allee API: GET /allee/listings/FILM-21ef85-3 (Node.js 18+, wbudowany fetch; plik .mjs)
const BASE = process.env.ALLEE_API_URL ?? "https://api.allee.pl";
const res = await fetch(`${BASE}/allee/listings/FILM-21ef85-3?includedData=summaries%2Cattributes%2Cissues%2Coffers%2CfulfillmentAvailability`, {
method: "GET",
headers: {
Authorization: `Bearer ${process.env.ALLEE_API_KEY}`,
"Accept": "application/vnd.allegro.public.v1+json",
},
redirect: "manual",
});
console.log("HTTP", res.status);
console.log(await res.text());// allee API: GET /allee/listings/FILM-21ef85-3 (C#, .NET 8+, HttpClient)
using System.Net.Http.Headers;
using System.Text;
var baseUrl = Environment.GetEnvironmentVariable("ALLEE_API_URL") ?? "https://api.allee.pl";
using var http = new HttpClient(new HttpClientHandler { AllowAutoRedirect = false });
using var req = new HttpRequestMessage(new HttpMethod("GET"), baseUrl + "/allee/listings/FILM-21ef85-3?includedData=summaries%2Cattributes%2Cissues%2Coffers%2CfulfillmentAvailability");
req.Headers.Authorization = new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("ALLEE_API_KEY"));
req.Headers.Accept.ParseAdd("application/vnd.allegro.public.v1+json");
using var res = await http.SendAsync(req);
Console.WriteLine($"HTTP {(int)res.StatusCode}");
Console.WriteLine(await res.Content.ReadAsStringAsync());// allee API: GET /allee/listings/FILM-21ef85-3 (Java 11+, java.net.http; uruchom: java Main.java)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
String base = System.getenv().getOrDefault("ALLEE_API_URL", "https://api.allee.pl");
HttpRequest req = HttpRequest.newBuilder(URI.create(base + "/allee/listings/FILM-21ef85-3?includedData=summaries%2Cattributes%2Cissues%2Coffers%2CfulfillmentAvailability"))
.header("Authorization", "Bearer " + System.getenv("ALLEE_API_KEY"))
.header("Accept", "application/vnd.allegro.public.v1+json")
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpClient http = HttpClient.newBuilder().version(HttpClient.Version.HTTP_1_1).build();
HttpResponse<String> res = http.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println("HTTP " + res.statusCode());
System.out.println(res.body());
}
}// allee API: GET /allee/listings/FILM-21ef85-3 (Go 1.20+, net/http; uruchom: go run main.go)
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
base := os.Getenv("ALLEE_API_URL")
if base == "" {
base = "https://api.allee.pl"
}
req, err := http.NewRequest("GET", base+"/allee/listings/FILM-21ef85-3?includedData=summaries%2Cattributes%2Cissues%2Coffers%2CfulfillmentAvailability", nil)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer "+os.Getenv("ALLEE_API_KEY"))
req.Header.Set("Accept", "application/vnd.allegro.public.v1+json")
klient := &http.Client{CheckRedirect: func(*http.Request, []*http.Request) error { return http.ErrUseLastResponse }}
res, err := klient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
dane, err := io.ReadAll(res.Body)
if err != nil {
panic(err)
}
fmt.Println("HTTP", res.StatusCode)
fmt.Println(string(dane))
}application/vnd.allegro.public.v1+json{
"sku": "FILM-21ef85-3",
"summaries": [
{
"marketplaceId": "allee-pl",
"offerId": "900000000000024",
"category": {
"alleeId": 35,
"id": "20585"
},
"status": [
"DISCOVERABLE",
"BUYABLE"
],
"publicationStatus": "ACTIVE",
"itemName": "Metropolis DVD wersja odrestaurowana",
"conditionType": "new_new",
"createdDate": "2026-11-10T11:10:04.000Z",
"lastUpdatedDate": "2026-11-10T11:10:04.000Z",
"mainImage": {
"link": "https://cdn.allee.pl/img/sandbox/9a16623650ab051ba0d7-1200.webp"
},
"url": "https://allee.pl/oferta/metropolis-dvd-wersja-odrestaurowana-900000000000024"
}
],
"attributes": {
"name": "Metropolis DVD wersja odrestaurowana",
"category": {
"alleeId": 35,
"id": "20585"
},
"parameters": {
"246845": {
"valuesIds": [
"246845_622165"
]
},
"250077": {
"valuesIds": [
"250077_1797493"
]
},
"225693": {
"values": [
"5901234123464"
]
},
"237218": {
"values": [
"Metropolis"
]
},
"11323": {
"valuesIds": [
"11323_1"
]
}
},
"images": [
"https://cdn.allee.pl/img/a/webe/1930/10001318-0-1200.webp"
],
"description": "Film na płycie DVD, nowy w folii. Wersja z polskimi napisami.",
"price": {
"amount": "59.90",
"currency": "PLN"
},
"stock": 4,
"shippingRatesId": "797d2e65-cb23-4a16-98e9-d6f2a399839a",
"responsibleProducerId": "472bad66-e704-4344-a2d6-9bd85b1f9a5e",
"safetyInformation": {
"type": "TEXT",
"description": "Produkt bezpieczny w normalnym użytkowaniu."
}
},
"issues": [],
"offers": [
{
"marketplaceId": "allee-pl",
"offerType": "B2C",
"price": {
"amount": "59.90",
"currency": "PLN"
},
"sellingFormat": "BUY_NOW"
}
],
"fulfillmentAvailability": [
{
"fulfillmentChannelCode": "DEFAULT",
"quantity": 4,
"handlingTime": null
}
]
}Utworzenie albo zastąpienie oferty po SKU
PUT /allee/listings/{sku}
wzór Amazon SP-APIallegro:api:sale:offers:writelimit: write
Idempotentne po SKU: brak oferty → tworzy (201), jest → zastępuje (200, change: UPDATED albo UNCHANGED). Atrybuty płaskie, nazwy jak w schemacie kategorii.
Błędy nie przerywają w połowie: odpowiedź 422 ma status: INVALID, pełną listę issues[] (kod, ważność, atrybuty) i te same błędy w kształcie Allegro (errors[]). Z ?mode=VALIDATION_PREVIEW nic nie zapisujemy — sprawdzasz dokument przed wysłaniem.
Zgodność: wzorowana na Amazon Selling Partner API — Listings Items — putListingsItem.
Uprawnienie: zakres allegro:api:sale:offers:write.
Grupa limitu: write.
Parametry ścieżki
sku string wymaganySKU (external.id): 1–100 znaków, bez „/” i znaków sterujących. W adresie zakoduj (np. spacja → %20).
Parametry zapytania
mode stringVALIDATION_PREVIEW = pełna walidacja bez zapisu (odpowiedź 200, status VALID/INVALID).
VALIDATION_PREVIEWTreść żądania application/vnd.allegro.public.v1+json
requirements stringLISTING (domyślnie) = pełna oferta; LISTING_OFFER_ONLY = tylko cena, stan, dostawa… istniejącego SKU.
LISTING, LISTING_OFFER_ONLYstatus stringACTIVE = publikuj (wymaga GPSR), INACTIVE = szkic.
ACTIVE, INACTIVEattributes ListingAttributes wymaganeAtrybuty listingu (płaskie, nazwy jak w schemacie kategorii GET /allee/categories/{id}/schema).
Pola obiektu
name stringTytuł (10–75 znaków).
category objectKategoria (alleeId ma pierwszeństwo).
Pola obiektu
alleeId integerid stringparameters objectParametry: klucz = id parametru Allegro (patrz schemat kategorii).
images array<string · uri>1–16 adresów.
description stringOpis (tekst, 20–20 000 znaków).
price MoneyInputKwota w żądaniu.
Pola obiektu
amount string|number wymaganeKwota jako tekst „123.45” (zalecane) albo liczba.
currency stringWaluta: tylko PLN (domyślnie PLN).
PLNstock integerSztuki (0–99 999).
ean stringGTIN (EAN).
shippingRatesId string · uuidTwój cennik.
handlingTime stringPT0S, PT24H, P2D…P60D.
returnPolicyId string · nullwarrantyId string · nullimpliedWarrantyId string · nullresponsibleProducerId string · nullresponsiblePersonId string · nullsafetyInformation SafetyInformation · nullPola obiektu
type string wymaganeTEXT, NO_SAFETY_INFORMATION, ATTACHMENTSdescription stringTreść informacji (dla TEXT).
taxRate string · null0.00, 5.00, 8.00, 23.00, nullinvoice string · nullVAT, VAT_MARGIN, WITHOUT_VAT, NO_INVOICE, nulllocation object · nullproductType stringPrzyjmowane bez skutku (zgodność z klientami Amazon).
marketplaceIds array<string>Bez skutku.
issueLocale stringBez skutku.
Odpowiedzi
200 Zastąpiono / bez zmian / podgląd. · ListingSubmissionResponse
sku string zawszestatus string zawszeACCEPTED = zapisano; VALID = podgląd poprawny (nic nie zapisano); INVALID = błędy (nic nie zapisano).
ACCEPTED, INVALID, VALIDsubmissionId string zawszeIdentyfikator zgłoszenia (= X-Request-Id).
offerId string · null zawszechange string · null zawszeCo się stało z ofertą.
CREATED, UPDATED, UNCHANGED, DELETED, ENDED, nullpublicationStatus PublicationStatus · null zawszeissues array<ListingIssue> zawszePola obiektu
code string zawszeKod problemu (ten sam słownik co błędy walidacji oferty).
message string zawszeseverity string zawszeERROR blokuje zapis/publikację, WARNING nie blokuje.
ERROR, WARNING, INFOattributeNames array<string> zawszeAtrybuty, których dotyczy problem.
categories array<string> zawszeGrupy problemu, np. MISSING_ATTRIBUTE, INVALID_ATTRIBUTE, GPSR.
path string · nullPole w kształcie Allegro (np. productSet[0].product.parameters).
messageId integerNumer komunikatu wsadu (tylko w raporcie wsadu).
errors array<Error>Przy INVALID: te same problemy w kształcie Allegro.
Pola obiektu
code string zawszeKod maszynowy błędu — na nim opieraj obsługę (lista: przewodnik „Błędy”).
message string zawszeOpis dla programisty (po polsku).
details any zawszeDane dodatkowe albo null — np. id istniejącej oferty przy OfferDuplicate, {"current": "SENT"} przy błędzie statusu, {"retryAfterMs": 1200} przy limicie.
path string · null zawszePole żądania, którego dotyczy błąd, np. productSet[0].product.parameters.
userMessage string zawszeKomunikat, który można pokazać sprzedawcy.
201 Utworzono. · ListingSubmissionResponse
sku string zawszestatus string zawszeACCEPTED = zapisano; VALID = podgląd poprawny (nic nie zapisano); INVALID = błędy (nic nie zapisano).
ACCEPTED, INVALID, VALIDsubmissionId string zawszeIdentyfikator zgłoszenia (= X-Request-Id).
offerId string · null zawszechange string · null zawszeCo się stało z ofertą.
CREATED, UPDATED, UNCHANGED, DELETED, ENDED, nullpublicationStatus PublicationStatus · null zawszeissues array<ListingIssue> zawszePola obiektu
code string zawszeKod problemu (ten sam słownik co błędy walidacji oferty).
message string zawszeseverity string zawszeERROR blokuje zapis/publikację, WARNING nie blokuje.
ERROR, WARNING, INFOattributeNames array<string> zawszeAtrybuty, których dotyczy problem.
categories array<string> zawszeGrupy problemu, np. MISSING_ATTRIBUTE, INVALID_ATTRIBUTE, GPSR.
path string · nullPole w kształcie Allegro (np. productSet[0].product.parameters).
messageId integerNumer komunikatu wsadu (tylko w raporcie wsadu).
errors array<Error>Przy INVALID: te same problemy w kształcie Allegro.
Pola obiektu
code string zawszeKod maszynowy błędu — na nim opieraj obsługę (lista: przewodnik „Błędy”).
message string zawszeOpis dla programisty (po polsku).
details any zawszeDane dodatkowe albo null — np. id istniejącej oferty przy OfferDuplicate, {"current": "SENT"} przy błędzie statusu, {"retryAfterMs": 1200} przy limicie.
path string · null zawszePole żądania, którego dotyczy błąd, np. productSet[0].product.parameters.
userMessage string zawszeKomunikat, który można pokazać sprzedawcy.
Błędy
| HTTP | Kod | Znaczenie |
|---|---|---|
| 400 | VALIDATION_ERROR | Zła wartość parametru zapytania (400) albo pola treści (422); path wskazuje miejsce. |
| 401 | invalid_token | Brak, zły, wygasły albo odwołany token lub klucz (format OAuth, nagłówek WWW-Authenticate). |
| 403 | ACCOUNT_INACTIVE | Konto sprzedawcy jest nieaktywne. |
| 403 | AccessDenied | Brak zakresu albo zasób innego sprzedawcy. |
| 403 | KEY_QUARANTINED | Kwarantanna: działa tylko odczyt (wykryto nietypowe użycie). |
| 403 | KEY_SUSPENDED | Klucz albo dostęp aplikacji wstrzymany (przez sprzedawcę albo ochronę). |
| 413 | PAYLOAD_TOO_LARGE | Treść żądania za duża (JSON 5 MB, faktura PDF 3 MB). |
| 415 | UNSUPPORTED_MEDIA_TYPE | Zły Content-Type treści. |
| 422 | JsonMappingException | Treść nie jest poprawnym JSON albo ma zły kształt (np. images jako obiekty). |
| 422 | UnknownJSONProperty | Pole nieznane w tym miejscu (path wskazuje które). |
| 429 | TOO_MANY_REQUESTS | Przekroczony limit (minutowy, grupy operacji albo IP). |
| 500 | INTERNAL_ERROR | Błąd serwera allee. |
curl -sS -X PUT "${ALLEE_API_URL:-https://api.allee.pl}/allee/listings/FILM-21ef85-3" \
-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'
{
"requirements": "LISTING",
"status": "ACTIVE",
"attributes": {
"name": "Metropolis DVD wersja odrestaurowana",
"category": {
"alleeId": 35
},
"parameters": {
"225693": {
"values": [
"5901234123464"
]
},
"237218": {
"values": [
"Metropolis"
]
},
"246845": {
"valuesIds": [
"246845_622165"
]
},
"250077": {
"valuesIds": [
"250077_1797493"
]
},
"11323": {
"valuesIds": [
"11323_1"
]
}
},
"price": {
"amount": "59.90",
"currency": "PLN"
},
"stock": 4,
"images": [
"https://cdn.allee.pl/img/a/webe/1930/10001318-0-1200.webp"
],
"description": "Film na płycie DVD, nowy w folii. Wersja z polskimi napisami.",
"shippingRatesId": "797d2e65-cb23-4a16-98e9-d6f2a399839a",
"responsibleProducerId": "472bad66-e704-4344-a2d6-9bd85b1f9a5e",
"safetyInformation": {
"type": "TEXT",
"description": "Produkt bezpieczny w normalnym użytkowaniu."
}
}
}
JSON<?php
// allee API: PUT /allee/listings/FILM-21ef85-3 (PHP 8, rozszerzenie curl)
$base = getenv('ALLEE_API_URL') ?: 'https://api.allee.pl';
$body = [
'requirements' => 'LISTING',
'status' => 'ACTIVE',
'attributes' => [
'name' => 'Metropolis DVD wersja odrestaurowana',
'category' => [
'alleeId' => 35,
],
'parameters' => [
'225693' => [
'values' => [
'5901234123464',
],
],
'237218' => [
'values' => [
'Metropolis',
],
],
'246845' => [
'valuesIds' => [
'246845_622165',
],
],
'250077' => [
'valuesIds' => [
'250077_1797493',
],
],
'11323' => [
'valuesIds' => [
'11323_1',
],
],
],
'price' => [
'amount' => '59.90',
'currency' => 'PLN',
],
'stock' => 4,
'images' => [
'https://cdn.allee.pl/img/a/webe/1930/10001318-0-1200.webp',
],
'description' => 'Film na płycie DVD, nowy w folii. Wersja z polskimi napisami.',
'shippingRatesId' => '797d2e65-cb23-4a16-98e9-d6f2a399839a',
'responsibleProducerId' => '472bad66-e704-4344-a2d6-9bd85b1f9a5e',
'safetyInformation' => [
'type' => 'TEXT',
'description' => 'Produkt bezpieczny w normalnym użytkowaniu.',
],
],
];
$ch = curl_init($base . '/allee/listings/FILM-21ef85-3');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('ALLEE_API_KEY'),
'Accept: application/vnd.allegro.public.v1+json',
'Content-Type: application/vnd.allegro.public.v1+json',
],
CURLOPT_POSTFIELDS => json_encode($body, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES),
CURLOPT_RETURNTRANSFER => true,
]);
$odp = curl_exec($ch);
echo 'HTTP ', curl_getinfo($ch, CURLINFO_RESPONSE_CODE), "\n", $odp, "\n";# allee API: PUT /allee/listings/FILM-21ef85-3 (Python 3, biblioteka requests)
import os
import requests
BASE = os.environ.get("ALLEE_API_URL", "https://api.allee.pl")
headers = {
"Authorization": "Bearer " + os.environ["ALLEE_API_KEY"],
"Accept": "application/vnd.allegro.public.v1+json",
"Content-Type": "application/vnd.allegro.public.v1+json",
}
body = {
"requirements": "LISTING",
"status": "ACTIVE",
"attributes": {
"name": "Metropolis DVD wersja odrestaurowana",
"category": {
"alleeId": 35,
},
"parameters": {
"225693": {
"values": [
"5901234123464",
],
},
"237218": {
"values": [
"Metropolis",
],
},
"246845": {
"valuesIds": [
"246845_622165",
],
},
"250077": {
"valuesIds": [
"250077_1797493",
],
},
"11323": {
"valuesIds": [
"11323_1",
],
},
},
"price": {
"amount": "59.90",
"currency": "PLN",
},
"stock": 4,
"images": [
"https://cdn.allee.pl/img/a/webe/1930/10001318-0-1200.webp",
],
"description": "Film na płycie DVD, nowy w folii. Wersja z polskimi napisami.",
"shippingRatesId": "797d2e65-cb23-4a16-98e9-d6f2a399839a",
"responsibleProducerId": "472bad66-e704-4344-a2d6-9bd85b1f9a5e",
"safetyInformation": {
"type": "TEXT",
"description": "Produkt bezpieczny w normalnym użytkowaniu.",
},
},
}
r = requests.request("PUT", BASE + "/allee/listings/FILM-21ef85-3", headers=headers, json=body, timeout=60, allow_redirects=False)
print("HTTP", r.status_code)
print(r.text)// allee API: PUT /allee/listings/FILM-21ef85-3 (Node.js 18+, wbudowany fetch; plik .mjs)
const BASE = process.env.ALLEE_API_URL ?? "https://api.allee.pl";
const body = {
"requirements": "LISTING",
"status": "ACTIVE",
"attributes": {
"name": "Metropolis DVD wersja odrestaurowana",
"category": {
"alleeId": 35
},
"parameters": {
"225693": {
"values": [
"5901234123464"
]
},
"237218": {
"values": [
"Metropolis"
]
},
"246845": {
"valuesIds": [
"246845_622165"
]
},
"250077": {
"valuesIds": [
"250077_1797493"
]
},
"11323": {
"valuesIds": [
"11323_1"
]
}
},
"price": {
"amount": "59.90",
"currency": "PLN"
},
"stock": 4,
"images": [
"https://cdn.allee.pl/img/a/webe/1930/10001318-0-1200.webp"
],
"description": "Film na płycie DVD, nowy w folii. Wersja z polskimi napisami.",
"shippingRatesId": "797d2e65-cb23-4a16-98e9-d6f2a399839a",
"responsibleProducerId": "472bad66-e704-4344-a2d6-9bd85b1f9a5e",
"safetyInformation": {
"type": "TEXT",
"description": "Produkt bezpieczny w normalnym użytkowaniu."
}
}
};
const res = await fetch(`${BASE}/allee/listings/FILM-21ef85-3`, {
method: "PUT",
headers: {
Authorization: `Bearer ${process.env.ALLEE_API_KEY}`,
"Accept": "application/vnd.allegro.public.v1+json",
"Content-Type": "application/vnd.allegro.public.v1+json",
},
body: JSON.stringify(body),
redirect: "manual",
});
console.log("HTTP", res.status);
console.log(await res.text());// allee API: PUT /allee/listings/FILM-21ef85-3 (C#, .NET 8+, HttpClient)
using System.Net.Http.Headers;
using System.Text;
var baseUrl = Environment.GetEnvironmentVariable("ALLEE_API_URL") ?? "https://api.allee.pl";
using var http = new HttpClient(new HttpClientHandler { AllowAutoRedirect = false });
using var req = new HttpRequestMessage(new HttpMethod("PUT"), baseUrl + "/allee/listings/FILM-21ef85-3");
req.Headers.Authorization = new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("ALLEE_API_KEY"));
req.Headers.Accept.ParseAdd("application/vnd.allegro.public.v1+json");
var json = """
{
"requirements": "LISTING",
"status": "ACTIVE",
"attributes": {
"name": "Metropolis DVD wersja odrestaurowana",
"category": {
"alleeId": 35
},
"parameters": {
"225693": {
"values": [
"5901234123464"
]
},
"237218": {
"values": [
"Metropolis"
]
},
"246845": {
"valuesIds": [
"246845_622165"
]
},
"250077": {
"valuesIds": [
"250077_1797493"
]
},
"11323": {
"valuesIds": [
"11323_1"
]
}
},
"price": {
"amount": "59.90",
"currency": "PLN"
},
"stock": 4,
"images": [
"https://cdn.allee.pl/img/a/webe/1930/10001318-0-1200.webp"
],
"description": "Film na płycie DVD, nowy w folii. Wersja z polskimi napisami.",
"shippingRatesId": "797d2e65-cb23-4a16-98e9-d6f2a399839a",
"responsibleProducerId": "472bad66-e704-4344-a2d6-9bd85b1f9a5e",
"safetyInformation": {
"type": "TEXT",
"description": "Produkt bezpieczny w normalnym użytkowaniu."
}
}
}
""";
req.Content = new StringContent(json, Encoding.UTF8);
req.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.allegro.public.v1+json");
using var res = await http.SendAsync(req);
Console.WriteLine($"HTTP {(int)res.StatusCode}");
Console.WriteLine(await res.Content.ReadAsStringAsync());// allee API: PUT /allee/listings/FILM-21ef85-3 (Java 11+, java.net.http; uruchom: java Main.java)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
String base = System.getenv().getOrDefault("ALLEE_API_URL", "https://api.allee.pl");
String body = """
{
"requirements": "LISTING",
"status": "ACTIVE",
"attributes": {
"name": "Metropolis DVD wersja odrestaurowana",
"category": {
"alleeId": 35
},
"parameters": {
"225693": {
"values": [
"5901234123464"
]
},
"237218": {
"values": [
"Metropolis"
]
},
"246845": {
"valuesIds": [
"246845_622165"
]
},
"250077": {
"valuesIds": [
"250077_1797493"
]
},
"11323": {
"valuesIds": [
"11323_1"
]
}
},
"price": {
"amount": "59.90",
"currency": "PLN"
},
"stock": 4,
"images": [
"https://cdn.allee.pl/img/a/webe/1930/10001318-0-1200.webp"
],
"description": "Film na płycie DVD, nowy w folii. Wersja z polskimi napisami.",
"shippingRatesId": "797d2e65-cb23-4a16-98e9-d6f2a399839a",
"responsibleProducerId": "472bad66-e704-4344-a2d6-9bd85b1f9a5e",
"safetyInformation": {
"type": "TEXT",
"description": "Produkt bezpieczny w normalnym użytkowaniu."
}
}
}
""";
HttpRequest req = HttpRequest.newBuilder(URI.create(base + "/allee/listings/FILM-21ef85-3"))
.header("Authorization", "Bearer " + System.getenv("ALLEE_API_KEY"))
.header("Accept", "application/vnd.allegro.public.v1+json")
.header("Content-Type", "application/vnd.allegro.public.v1+json")
.method("PUT", HttpRequest.BodyPublishers.ofString(body))
.build();
HttpClient http = HttpClient.newBuilder().version(HttpClient.Version.HTTP_1_1).build();
HttpResponse<String> res = http.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println("HTTP " + res.statusCode());
System.out.println(res.body());
}
}// allee API: PUT /allee/listings/FILM-21ef85-3 (Go 1.20+, net/http; uruchom: go run main.go)
package main
import (
"fmt"
"io"
"net/http"
"os"
"strings"
)
func main() {
base := os.Getenv("ALLEE_API_URL")
if base == "" {
base = "https://api.allee.pl"
}
body := `{
"requirements": "LISTING",
"status": "ACTIVE",
"attributes": {
"name": "Metropolis DVD wersja odrestaurowana",
"category": {
"alleeId": 35
},
"parameters": {
"225693": {
"values": [
"5901234123464"
]
},
"237218": {
"values": [
"Metropolis"
]
},
"246845": {
"valuesIds": [
"246845_622165"
]
},
"250077": {
"valuesIds": [
"250077_1797493"
]
},
"11323": {
"valuesIds": [
"11323_1"
]
}
},
"price": {
"amount": "59.90",
"currency": "PLN"
},
"stock": 4,
"images": [
"https://cdn.allee.pl/img/a/webe/1930/10001318-0-1200.webp"
],
"description": "Film na płycie DVD, nowy w folii. Wersja z polskimi napisami.",
"shippingRatesId": "797d2e65-cb23-4a16-98e9-d6f2a399839a",
"responsibleProducerId": "472bad66-e704-4344-a2d6-9bd85b1f9a5e",
"safetyInformation": {
"type": "TEXT",
"description": "Produkt bezpieczny w normalnym użytkowaniu."
}
}
}`
req, err := http.NewRequest("PUT", base+"/allee/listings/FILM-21ef85-3", strings.NewReader(body))
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer "+os.Getenv("ALLEE_API_KEY"))
req.Header.Set("Accept", "application/vnd.allegro.public.v1+json")
req.Header.Set("Content-Type", "application/vnd.allegro.public.v1+json")
klient := &http.Client{CheckRedirect: func(*http.Request, []*http.Request) error { return http.ErrUseLastResponse }}
res, err := klient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
dane, err := io.ReadAll(res.Body)
if err != nil {
panic(err)
}
fmt.Println("HTTP", res.StatusCode)
fmt.Println(string(dane))
}application/vnd.allegro.public.v1+json{
"sku": "FILM-21ef85-3",
"status": "ACCEPTED",
"submissionId": "703bc87433a98c12",
"offerId": "900000000000024",
"change": "CREATED",
"publicationStatus": "ACTIVE",
"issues": []
}Przykład: Podgląd walidacji bez zapisu (mode=VALIDATION_PREVIEW)
curl -sS -X PUT "${ALLEE_API_URL:-https://api.allee.pl}/allee/listings/FILM-21ef85-3?mode=VALIDATION_PREVIEW" \
-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'
{
"requirements": "LISTING",
"status": "ACTIVE",
"attributes": {
"name": "Metropolis DVD wersja odrestaurowana",
"category": {
"alleeId": 35
},
"parameters": {
"225693": {
"values": [
"5901234123464"
]
},
"237218": {
"values": [
"Metropolis"
]
},
"246845": {
"valuesIds": [
"246845_622165"
]
},
"250077": {
"valuesIds": [
"250077_1797493"
]
},
"11323": {
"valuesIds": [
"11323_1"
]
}
},
"price": {
"amount": "59.90",
"currency": "PLN"
},
"stock": 4,
"images": [
"https://cdn.allee.pl/img/a/webe/1930/10001318-0-1200.webp"
],
"description": "Film na płycie DVD, nowy w folii. Wersja z polskimi napisami.",
"shippingRatesId": "797d2e65-cb23-4a16-98e9-d6f2a399839a",
"responsibleProducerId": "472bad66-e704-4344-a2d6-9bd85b1f9a5e",
"safetyInformation": {
"type": "TEXT",
"description": "Produkt bezpieczny w normalnym użytkowaniu."
}
}
}
JSON<?php
// allee API: PUT /allee/listings/FILM-21ef85-3 (PHP 8, rozszerzenie curl)
$base = getenv('ALLEE_API_URL') ?: 'https://api.allee.pl';
$body = [
'requirements' => 'LISTING',
'status' => 'ACTIVE',
'attributes' => [
'name' => 'Metropolis DVD wersja odrestaurowana',
'category' => [
'alleeId' => 35,
],
'parameters' => [
'225693' => [
'values' => [
'5901234123464',
],
],
'237218' => [
'values' => [
'Metropolis',
],
],
'246845' => [
'valuesIds' => [
'246845_622165',
],
],
'250077' => [
'valuesIds' => [
'250077_1797493',
],
],
'11323' => [
'valuesIds' => [
'11323_1',
],
],
],
'price' => [
'amount' => '59.90',
'currency' => 'PLN',
],
'stock' => 4,
'images' => [
'https://cdn.allee.pl/img/a/webe/1930/10001318-0-1200.webp',
],
'description' => 'Film na płycie DVD, nowy w folii. Wersja z polskimi napisami.',
'shippingRatesId' => '797d2e65-cb23-4a16-98e9-d6f2a399839a',
'responsibleProducerId' => '472bad66-e704-4344-a2d6-9bd85b1f9a5e',
'safetyInformation' => [
'type' => 'TEXT',
'description' => 'Produkt bezpieczny w normalnym użytkowaniu.',
],
],
];
$ch = curl_init($base . '/allee/listings/FILM-21ef85-3?mode=VALIDATION_PREVIEW');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('ALLEE_API_KEY'),
'Accept: application/vnd.allegro.public.v1+json',
'Content-Type: application/vnd.allegro.public.v1+json',
],
CURLOPT_POSTFIELDS => json_encode($body, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES),
CURLOPT_RETURNTRANSFER => true,
]);
$odp = curl_exec($ch);
echo 'HTTP ', curl_getinfo($ch, CURLINFO_RESPONSE_CODE), "\n", $odp, "\n";# allee API: PUT /allee/listings/FILM-21ef85-3 (Python 3, biblioteka requests)
import os
import requests
BASE = os.environ.get("ALLEE_API_URL", "https://api.allee.pl")
headers = {
"Authorization": "Bearer " + os.environ["ALLEE_API_KEY"],
"Accept": "application/vnd.allegro.public.v1+json",
"Content-Type": "application/vnd.allegro.public.v1+json",
}
body = {
"requirements": "LISTING",
"status": "ACTIVE",
"attributes": {
"name": "Metropolis DVD wersja odrestaurowana",
"category": {
"alleeId": 35,
},
"parameters": {
"225693": {
"values": [
"5901234123464",
],
},
"237218": {
"values": [
"Metropolis",
],
},
"246845": {
"valuesIds": [
"246845_622165",
],
},
"250077": {
"valuesIds": [
"250077_1797493",
],
},
"11323": {
"valuesIds": [
"11323_1",
],
},
},
"price": {
"amount": "59.90",
"currency": "PLN",
},
"stock": 4,
"images": [
"https://cdn.allee.pl/img/a/webe/1930/10001318-0-1200.webp",
],
"description": "Film na płycie DVD, nowy w folii. Wersja z polskimi napisami.",
"shippingRatesId": "797d2e65-cb23-4a16-98e9-d6f2a399839a",
"responsibleProducerId": "472bad66-e704-4344-a2d6-9bd85b1f9a5e",
"safetyInformation": {
"type": "TEXT",
"description": "Produkt bezpieczny w normalnym użytkowaniu.",
},
},
}
r = requests.request("PUT", BASE + "/allee/listings/FILM-21ef85-3?mode=VALIDATION_PREVIEW", headers=headers, json=body, timeout=60, allow_redirects=False)
print("HTTP", r.status_code)
print(r.text)// allee API: PUT /allee/listings/FILM-21ef85-3 (Node.js 18+, wbudowany fetch; plik .mjs)
const BASE = process.env.ALLEE_API_URL ?? "https://api.allee.pl";
const body = {
"requirements": "LISTING",
"status": "ACTIVE",
"attributes": {
"name": "Metropolis DVD wersja odrestaurowana",
"category": {
"alleeId": 35
},
"parameters": {
"225693": {
"values": [
"5901234123464"
]
},
"237218": {
"values": [
"Metropolis"
]
},
"246845": {
"valuesIds": [
"246845_622165"
]
},
"250077": {
"valuesIds": [
"250077_1797493"
]
},
"11323": {
"valuesIds": [
"11323_1"
]
}
},
"price": {
"amount": "59.90",
"currency": "PLN"
},
"stock": 4,
"images": [
"https://cdn.allee.pl/img/a/webe/1930/10001318-0-1200.webp"
],
"description": "Film na płycie DVD, nowy w folii. Wersja z polskimi napisami.",
"shippingRatesId": "797d2e65-cb23-4a16-98e9-d6f2a399839a",
"responsibleProducerId": "472bad66-e704-4344-a2d6-9bd85b1f9a5e",
"safetyInformation": {
"type": "TEXT",
"description": "Produkt bezpieczny w normalnym użytkowaniu."
}
}
};
const res = await fetch(`${BASE}/allee/listings/FILM-21ef85-3?mode=VALIDATION_PREVIEW`, {
method: "PUT",
headers: {
Authorization: `Bearer ${process.env.ALLEE_API_KEY}`,
"Accept": "application/vnd.allegro.public.v1+json",
"Content-Type": "application/vnd.allegro.public.v1+json",
},
body: JSON.stringify(body),
redirect: "manual",
});
console.log("HTTP", res.status);
console.log(await res.text());// allee API: PUT /allee/listings/FILM-21ef85-3 (C#, .NET 8+, HttpClient)
using System.Net.Http.Headers;
using System.Text;
var baseUrl = Environment.GetEnvironmentVariable("ALLEE_API_URL") ?? "https://api.allee.pl";
using var http = new HttpClient(new HttpClientHandler { AllowAutoRedirect = false });
using var req = new HttpRequestMessage(new HttpMethod("PUT"), baseUrl + "/allee/listings/FILM-21ef85-3?mode=VALIDATION_PREVIEW");
req.Headers.Authorization = new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("ALLEE_API_KEY"));
req.Headers.Accept.ParseAdd("application/vnd.allegro.public.v1+json");
var json = """
{
"requirements": "LISTING",
"status": "ACTIVE",
"attributes": {
"name": "Metropolis DVD wersja odrestaurowana",
"category": {
"alleeId": 35
},
"parameters": {
"225693": {
"values": [
"5901234123464"
]
},
"237218": {
"values": [
"Metropolis"
]
},
"246845": {
"valuesIds": [
"246845_622165"
]
},
"250077": {
"valuesIds": [
"250077_1797493"
]
},
"11323": {
"valuesIds": [
"11323_1"
]
}
},
"price": {
"amount": "59.90",
"currency": "PLN"
},
"stock": 4,
"images": [
"https://cdn.allee.pl/img/a/webe/1930/10001318-0-1200.webp"
],
"description": "Film na płycie DVD, nowy w folii. Wersja z polskimi napisami.",
"shippingRatesId": "797d2e65-cb23-4a16-98e9-d6f2a399839a",
"responsibleProducerId": "472bad66-e704-4344-a2d6-9bd85b1f9a5e",
"safetyInformation": {
"type": "TEXT",
"description": "Produkt bezpieczny w normalnym użytkowaniu."
}
}
}
""";
req.Content = new StringContent(json, Encoding.UTF8);
req.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.allegro.public.v1+json");
using var res = await http.SendAsync(req);
Console.WriteLine($"HTTP {(int)res.StatusCode}");
Console.WriteLine(await res.Content.ReadAsStringAsync());// allee API: PUT /allee/listings/FILM-21ef85-3 (Java 11+, java.net.http; uruchom: java Main.java)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
String base = System.getenv().getOrDefault("ALLEE_API_URL", "https://api.allee.pl");
String body = """
{
"requirements": "LISTING",
"status": "ACTIVE",
"attributes": {
"name": "Metropolis DVD wersja odrestaurowana",
"category": {
"alleeId": 35
},
"parameters": {
"225693": {
"values": [
"5901234123464"
]
},
"237218": {
"values": [
"Metropolis"
]
},
"246845": {
"valuesIds": [
"246845_622165"
]
},
"250077": {
"valuesIds": [
"250077_1797493"
]
},
"11323": {
"valuesIds": [
"11323_1"
]
}
},
"price": {
"amount": "59.90",
"currency": "PLN"
},
"stock": 4,
"images": [
"https://cdn.allee.pl/img/a/webe/1930/10001318-0-1200.webp"
],
"description": "Film na płycie DVD, nowy w folii. Wersja z polskimi napisami.",
"shippingRatesId": "797d2e65-cb23-4a16-98e9-d6f2a399839a",
"responsibleProducerId": "472bad66-e704-4344-a2d6-9bd85b1f9a5e",
"safetyInformation": {
"type": "TEXT",
"description": "Produkt bezpieczny w normalnym użytkowaniu."
}
}
}
""";
HttpRequest req = HttpRequest.newBuilder(URI.create(base + "/allee/listings/FILM-21ef85-3?mode=VALIDATION_PREVIEW"))
.header("Authorization", "Bearer " + System.getenv("ALLEE_API_KEY"))
.header("Accept", "application/vnd.allegro.public.v1+json")
.header("Content-Type", "application/vnd.allegro.public.v1+json")
.method("PUT", HttpRequest.BodyPublishers.ofString(body))
.build();
HttpClient http = HttpClient.newBuilder().version(HttpClient.Version.HTTP_1_1).build();
HttpResponse<String> res = http.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println("HTTP " + res.statusCode());
System.out.println(res.body());
}
}// allee API: PUT /allee/listings/FILM-21ef85-3 (Go 1.20+, net/http; uruchom: go run main.go)
package main
import (
"fmt"
"io"
"net/http"
"os"
"strings"
)
func main() {
base := os.Getenv("ALLEE_API_URL")
if base == "" {
base = "https://api.allee.pl"
}
body := `{
"requirements": "LISTING",
"status": "ACTIVE",
"attributes": {
"name": "Metropolis DVD wersja odrestaurowana",
"category": {
"alleeId": 35
},
"parameters": {
"225693": {
"values": [
"5901234123464"
]
},
"237218": {
"values": [
"Metropolis"
]
},
"246845": {
"valuesIds": [
"246845_622165"
]
},
"250077": {
"valuesIds": [
"250077_1797493"
]
},
"11323": {
"valuesIds": [
"11323_1"
]
}
},
"price": {
"amount": "59.90",
"currency": "PLN"
},
"stock": 4,
"images": [
"https://cdn.allee.pl/img/a/webe/1930/10001318-0-1200.webp"
],
"description": "Film na płycie DVD, nowy w folii. Wersja z polskimi napisami.",
"shippingRatesId": "797d2e65-cb23-4a16-98e9-d6f2a399839a",
"responsibleProducerId": "472bad66-e704-4344-a2d6-9bd85b1f9a5e",
"safetyInformation": {
"type": "TEXT",
"description": "Produkt bezpieczny w normalnym użytkowaniu."
}
}
}`
req, err := http.NewRequest("PUT", base+"/allee/listings/FILM-21ef85-3?mode=VALIDATION_PREVIEW", strings.NewReader(body))
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer "+os.Getenv("ALLEE_API_KEY"))
req.Header.Set("Accept", "application/vnd.allegro.public.v1+json")
req.Header.Set("Content-Type", "application/vnd.allegro.public.v1+json")
klient := &http.Client{CheckRedirect: func(*http.Request, []*http.Request) error { return http.ErrUseLastResponse }}
res, err := klient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
dane, err := io.ReadAll(res.Body)
if err != nil {
panic(err)
}
fmt.Println("HTTP", res.StatusCode)
fmt.Println(string(dane))
}application/vnd.allegro.public.v1+json{
"sku": "FILM-21ef85-3",
"status": "VALID",
"submissionId": "813685289be61f68",
"offerId": null,
"change": null,
"publicationStatus": null,
"issues": []
}Przykład: Szkic po SKU (do usunięcia)
curl -sS -X PUT "${ALLEE_API_URL:-https://api.allee.pl}/allee/listings/FILM-21ef85-4" \
-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'
{
"requirements": "LISTING",
"status": "INACTIVE",
"attributes": {
"name": "Nosferatu DVD wydanie specjalne",
"category": {
"alleeId": 35
},
"parameters": {
"225693": {
"values": [
"5901234123464"
]
},
"237218": {
"values": [
"Metropolis"
]
},
"246845": {
"valuesIds": [
"246845_622165"
]
},
"250077": {
"valuesIds": [
"250077_1797493"
]
},
"11323": {
"valuesIds": [
"11323_1"
]
}
},
"price": {
"amount": "39.90",
"currency": "PLN"
},
"stock": 2,
"images": [
"https://cdn.allee.pl/img/a/webe/1930/10001318-0-1200.webp"
],
"description": "Film na płycie DVD, nowy w folii. Wersja z polskimi napisami.",
"shippingRatesId": "797d2e65-cb23-4a16-98e9-d6f2a399839a",
"responsibleProducerId": "472bad66-e704-4344-a2d6-9bd85b1f9a5e",
"safetyInformation": {
"type": "TEXT",
"description": "Produkt bezpieczny w normalnym użytkowaniu."
}
}
}
JSON<?php
// allee API: PUT /allee/listings/FILM-21ef85-4 (PHP 8, rozszerzenie curl)
$base = getenv('ALLEE_API_URL') ?: 'https://api.allee.pl';
$body = [
'requirements' => 'LISTING',
'status' => 'INACTIVE',
'attributes' => [
'name' => 'Nosferatu DVD wydanie specjalne',
'category' => [
'alleeId' => 35,
],
'parameters' => [
'225693' => [
'values' => [
'5901234123464',
],
],
'237218' => [
'values' => [
'Metropolis',
],
],
'246845' => [
'valuesIds' => [
'246845_622165',
],
],
'250077' => [
'valuesIds' => [
'250077_1797493',
],
],
'11323' => [
'valuesIds' => [
'11323_1',
],
],
],
'price' => [
'amount' => '39.90',
'currency' => 'PLN',
],
'stock' => 2,
'images' => [
'https://cdn.allee.pl/img/a/webe/1930/10001318-0-1200.webp',
],
'description' => 'Film na płycie DVD, nowy w folii. Wersja z polskimi napisami.',
'shippingRatesId' => '797d2e65-cb23-4a16-98e9-d6f2a399839a',
'responsibleProducerId' => '472bad66-e704-4344-a2d6-9bd85b1f9a5e',
'safetyInformation' => [
'type' => 'TEXT',
'description' => 'Produkt bezpieczny w normalnym użytkowaniu.',
],
],
];
$ch = curl_init($base . '/allee/listings/FILM-21ef85-4');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('ALLEE_API_KEY'),
'Accept: application/vnd.allegro.public.v1+json',
'Content-Type: application/vnd.allegro.public.v1+json',
],
CURLOPT_POSTFIELDS => json_encode($body, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES),
CURLOPT_RETURNTRANSFER => true,
]);
$odp = curl_exec($ch);
echo 'HTTP ', curl_getinfo($ch, CURLINFO_RESPONSE_CODE), "\n", $odp, "\n";# allee API: PUT /allee/listings/FILM-21ef85-4 (Python 3, biblioteka requests)
import os
import requests
BASE = os.environ.get("ALLEE_API_URL", "https://api.allee.pl")
headers = {
"Authorization": "Bearer " + os.environ["ALLEE_API_KEY"],
"Accept": "application/vnd.allegro.public.v1+json",
"Content-Type": "application/vnd.allegro.public.v1+json",
}
body = {
"requirements": "LISTING",
"status": "INACTIVE",
"attributes": {
"name": "Nosferatu DVD wydanie specjalne",
"category": {
"alleeId": 35,
},
"parameters": {
"225693": {
"values": [
"5901234123464",
],
},
"237218": {
"values": [
"Metropolis",
],
},
"246845": {
"valuesIds": [
"246845_622165",
],
},
"250077": {
"valuesIds": [
"250077_1797493",
],
},
"11323": {
"valuesIds": [
"11323_1",
],
},
},
"price": {
"amount": "39.90",
"currency": "PLN",
},
"stock": 2,
"images": [
"https://cdn.allee.pl/img/a/webe/1930/10001318-0-1200.webp",
],
"description": "Film na płycie DVD, nowy w folii. Wersja z polskimi napisami.",
"shippingRatesId": "797d2e65-cb23-4a16-98e9-d6f2a399839a",
"responsibleProducerId": "472bad66-e704-4344-a2d6-9bd85b1f9a5e",
"safetyInformation": {
"type": "TEXT",
"description": "Produkt bezpieczny w normalnym użytkowaniu.",
},
},
}
r = requests.request("PUT", BASE + "/allee/listings/FILM-21ef85-4", headers=headers, json=body, timeout=60, allow_redirects=False)
print("HTTP", r.status_code)
print(r.text)// allee API: PUT /allee/listings/FILM-21ef85-4 (Node.js 18+, wbudowany fetch; plik .mjs)
const BASE = process.env.ALLEE_API_URL ?? "https://api.allee.pl";
const body = {
"requirements": "LISTING",
"status": "INACTIVE",
"attributes": {
"name": "Nosferatu DVD wydanie specjalne",
"category": {
"alleeId": 35
},
"parameters": {
"225693": {
"values": [
"5901234123464"
]
},
"237218": {
"values": [
"Metropolis"
]
},
"246845": {
"valuesIds": [
"246845_622165"
]
},
"250077": {
"valuesIds": [
"250077_1797493"
]
},
"11323": {
"valuesIds": [
"11323_1"
]
}
},
"price": {
"amount": "39.90",
"currency": "PLN"
},
"stock": 2,
"images": [
"https://cdn.allee.pl/img/a/webe/1930/10001318-0-1200.webp"
],
"description": "Film na płycie DVD, nowy w folii. Wersja z polskimi napisami.",
"shippingRatesId": "797d2e65-cb23-4a16-98e9-d6f2a399839a",
"responsibleProducerId": "472bad66-e704-4344-a2d6-9bd85b1f9a5e",
"safetyInformation": {
"type": "TEXT",
"description": "Produkt bezpieczny w normalnym użytkowaniu."
}
}
};
const res = await fetch(`${BASE}/allee/listings/FILM-21ef85-4`, {
method: "PUT",
headers: {
Authorization: `Bearer ${process.env.ALLEE_API_KEY}`,
"Accept": "application/vnd.allegro.public.v1+json",
"Content-Type": "application/vnd.allegro.public.v1+json",
},
body: JSON.stringify(body),
redirect: "manual",
});
console.log("HTTP", res.status);
console.log(await res.text());// allee API: PUT /allee/listings/FILM-21ef85-4 (C#, .NET 8+, HttpClient)
using System.Net.Http.Headers;
using System.Text;
var baseUrl = Environment.GetEnvironmentVariable("ALLEE_API_URL") ?? "https://api.allee.pl";
using var http = new HttpClient(new HttpClientHandler { AllowAutoRedirect = false });
using var req = new HttpRequestMessage(new HttpMethod("PUT"), baseUrl + "/allee/listings/FILM-21ef85-4");
req.Headers.Authorization = new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("ALLEE_API_KEY"));
req.Headers.Accept.ParseAdd("application/vnd.allegro.public.v1+json");
var json = """
{
"requirements": "LISTING",
"status": "INACTIVE",
"attributes": {
"name": "Nosferatu DVD wydanie specjalne",
"category": {
"alleeId": 35
},
"parameters": {
"225693": {
"values": [
"5901234123464"
]
},
"237218": {
"values": [
"Metropolis"
]
},
"246845": {
"valuesIds": [
"246845_622165"
]
},
"250077": {
"valuesIds": [
"250077_1797493"
]
},
"11323": {
"valuesIds": [
"11323_1"
]
}
},
"price": {
"amount": "39.90",
"currency": "PLN"
},
"stock": 2,
"images": [
"https://cdn.allee.pl/img/a/webe/1930/10001318-0-1200.webp"
],
"description": "Film na płycie DVD, nowy w folii. Wersja z polskimi napisami.",
"shippingRatesId": "797d2e65-cb23-4a16-98e9-d6f2a399839a",
"responsibleProducerId": "472bad66-e704-4344-a2d6-9bd85b1f9a5e",
"safetyInformation": {
"type": "TEXT",
"description": "Produkt bezpieczny w normalnym użytkowaniu."
}
}
}
""";
req.Content = new StringContent(json, Encoding.UTF8);
req.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.allegro.public.v1+json");
using var res = await http.SendAsync(req);
Console.WriteLine($"HTTP {(int)res.StatusCode}");
Console.WriteLine(await res.Content.ReadAsStringAsync());// allee API: PUT /allee/listings/FILM-21ef85-4 (Java 11+, java.net.http; uruchom: java Main.java)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
String base = System.getenv().getOrDefault("ALLEE_API_URL", "https://api.allee.pl");
String body = """
{
"requirements": "LISTING",
"status": "INACTIVE",
"attributes": {
"name": "Nosferatu DVD wydanie specjalne",
"category": {
"alleeId": 35
},
"parameters": {
"225693": {
"values": [
"5901234123464"
]
},
"237218": {
"values": [
"Metropolis"
]
},
"246845": {
"valuesIds": [
"246845_622165"
]
},
"250077": {
"valuesIds": [
"250077_1797493"
]
},
"11323": {
"valuesIds": [
"11323_1"
]
}
},
"price": {
"amount": "39.90",
"currency": "PLN"
},
"stock": 2,
"images": [
"https://cdn.allee.pl/img/a/webe/1930/10001318-0-1200.webp"
],
"description": "Film na płycie DVD, nowy w folii. Wersja z polskimi napisami.",
"shippingRatesId": "797d2e65-cb23-4a16-98e9-d6f2a399839a",
"responsibleProducerId": "472bad66-e704-4344-a2d6-9bd85b1f9a5e",
"safetyInformation": {
"type": "TEXT",
"description": "Produkt bezpieczny w normalnym użytkowaniu."
}
}
}
""";
HttpRequest req = HttpRequest.newBuilder(URI.create(base + "/allee/listings/FILM-21ef85-4"))
.header("Authorization", "Bearer " + System.getenv("ALLEE_API_KEY"))
.header("Accept", "application/vnd.allegro.public.v1+json")
.header("Content-Type", "application/vnd.allegro.public.v1+json")
.method("PUT", HttpRequest.BodyPublishers.ofString(body))
.build();
HttpClient http = HttpClient.newBuilder().version(HttpClient.Version.HTTP_1_1).build();
HttpResponse<String> res = http.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println("HTTP " + res.statusCode());
System.out.println(res.body());
}
}// allee API: PUT /allee/listings/FILM-21ef85-4 (Go 1.20+, net/http; uruchom: go run main.go)
package main
import (
"fmt"
"io"
"net/http"
"os"
"strings"
)
func main() {
base := os.Getenv("ALLEE_API_URL")
if base == "" {
base = "https://api.allee.pl"
}
body := `{
"requirements": "LISTING",
"status": "INACTIVE",
"attributes": {
"name": "Nosferatu DVD wydanie specjalne",
"category": {
"alleeId": 35
},
"parameters": {
"225693": {
"values": [
"5901234123464"
]
},
"237218": {
"values": [
"Metropolis"
]
},
"246845": {
"valuesIds": [
"246845_622165"
]
},
"250077": {
"valuesIds": [
"250077_1797493"
]
},
"11323": {
"valuesIds": [
"11323_1"
]
}
},
"price": {
"amount": "39.90",
"currency": "PLN"
},
"stock": 2,
"images": [
"https://cdn.allee.pl/img/a/webe/1930/10001318-0-1200.webp"
],
"description": "Film na płycie DVD, nowy w folii. Wersja z polskimi napisami.",
"shippingRatesId": "797d2e65-cb23-4a16-98e9-d6f2a399839a",
"responsibleProducerId": "472bad66-e704-4344-a2d6-9bd85b1f9a5e",
"safetyInformation": {
"type": "TEXT",
"description": "Produkt bezpieczny w normalnym użytkowaniu."
}
}
}`
req, err := http.NewRequest("PUT", base+"/allee/listings/FILM-21ef85-4", strings.NewReader(body))
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer "+os.Getenv("ALLEE_API_KEY"))
req.Header.Set("Accept", "application/vnd.allegro.public.v1+json")
req.Header.Set("Content-Type", "application/vnd.allegro.public.v1+json")
klient := &http.Client{CheckRedirect: func(*http.Request, []*http.Request) error { return http.ErrUseLastResponse }}
res, err := klient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
dane, err := io.ReadAll(res.Body)
if err != nil {
panic(err)
}
fmt.Println("HTTP", res.StatusCode)
fmt.Println(string(dane))
}application/vnd.allegro.public.v1+json{
"sku": "FILM-21ef85-4",
"status": "ACCEPTED",
"submissionId": "f54c1ef8b70b117b",
"offerId": "900000000000025",
"change": "CREATED",
"publicationStatus": "INACTIVE",
"issues": []
}Częściowa zmiana oferty po SKU (JSON Patch)
PATCH /allee/listings/{sku}
wzór Amazon SP-APIallegro:api:sale:offers:writelimit: write
Zmiany replace / add / delete na /attributes/{nazwa} (np. /attributes/price, /attributes/stock). Zmiana tylko ceny i stanu idzie szybką ścieżką.
Zły dokument JSON Patch → 400. Nieistniejące SKU → 404. ?mode=VALIDATION_PREVIEW — podgląd bez zapisu.
Zgodność: wzorowana na Amazon Selling Partner API — Listings Items — patchListingsItem.
Uprawnienie: zakres allegro:api:sale:offers:write.
Grupa limitu: write.
Parametry ścieżki
sku string wymaganySKU (external.id): 1–100 znaków, bez „/” i znaków sterujących. W adresie zakoduj (np. spacja → %20).
Parametry zapytania
mode stringVALIDATION_PREVIEW = pełna walidacja bez zapisu (odpowiedź 200, status VALID/INVALID).
VALIDATION_PREVIEWTreść żądania application/vnd.allegro.public.v1+json
patches array<object> wymaganeZmiany JSON Patch (RFC 6902, podzbiór).
Pola obiektu
op string wymaganereplace, add, deletepath string wymaganeŚcieżka /attributes/{nazwa}, np. /attributes/price, /attributes/stock.
value anyNowa wartość (dla replace i add).
status stringACTIVE, INACTIVEproductType stringmarketplaceIds array<string>issueLocale stringOdpowiedzi
200 Zmieniono (albo podgląd). · ListingSubmissionResponse
sku string zawszestatus string zawszeACCEPTED = zapisano; VALID = podgląd poprawny (nic nie zapisano); INVALID = błędy (nic nie zapisano).
ACCEPTED, INVALID, VALIDsubmissionId string zawszeIdentyfikator zgłoszenia (= X-Request-Id).
offerId string · null zawszechange string · null zawszeCo się stało z ofertą.
CREATED, UPDATED, UNCHANGED, DELETED, ENDED, nullpublicationStatus PublicationStatus · null zawszeissues array<ListingIssue> zawszePola obiektu
code string zawszeKod problemu (ten sam słownik co błędy walidacji oferty).
message string zawszeseverity string zawszeERROR blokuje zapis/publikację, WARNING nie blokuje.
ERROR, WARNING, INFOattributeNames array<string> zawszeAtrybuty, których dotyczy problem.
categories array<string> zawszeGrupy problemu, np. MISSING_ATTRIBUTE, INVALID_ATTRIBUTE, GPSR.
path string · nullPole w kształcie Allegro (np. productSet[0].product.parameters).
messageId integerNumer komunikatu wsadu (tylko w raporcie wsadu).
errors array<Error>Przy INVALID: te same problemy w kształcie Allegro.
Pola obiektu
code string zawszeKod maszynowy błędu — na nim opieraj obsługę (lista: przewodnik „Błędy”).
message string zawszeOpis dla programisty (po polsku).
details any zawszeDane dodatkowe albo null — np. id istniejącej oferty przy OfferDuplicate, {"current": "SENT"} przy błędzie statusu, {"retryAfterMs": 1200} przy limicie.
path string · null zawszePole żądania, którego dotyczy błąd, np. productSet[0].product.parameters.
userMessage string zawszeKomunikat, który można pokazać sprzedawcy.
Błędy
| HTTP | Kod | Znaczenie |
|---|---|---|
| 400 | VALIDATION_ERROR | Zła wartość parametru zapytania (400) albo pola treści (422); path wskazuje miejsce. |
| 401 | invalid_token | Brak, zły, wygasły albo odwołany token lub klucz (format OAuth, nagłówek WWW-Authenticate). |
| 403 | ACCOUNT_INACTIVE | Konto sprzedawcy jest nieaktywne. |
| 403 | AccessDenied | Brak zakresu albo zasób innego sprzedawcy. |
| 403 | KEY_QUARANTINED | Kwarantanna: działa tylko odczyt (wykryto nietypowe użycie). |
| 403 | KEY_SUSPENDED | Klucz albo dostęp aplikacji wstrzymany (przez sprzedawcę albo ochronę). |
| 404 | NOT_FOUND | Nie ma takiego zasobu (albo należy do innego sprzedawcy — dla wątków, zwrotów i spraw odpowiedź jest ta sama). |
| 413 | PAYLOAD_TOO_LARGE | Treść żądania za duża (JSON 5 MB, faktura PDF 3 MB). |
| 415 | UNSUPPORTED_MEDIA_TYPE | Zły Content-Type treści. |
| 422 | JsonMappingException | Treść nie jest poprawnym JSON albo ma zły kształt (np. images jako obiekty). |
| 422 | UnknownJSONProperty | Pole nieznane w tym miejscu (path wskazuje które). |
| 429 | TOO_MANY_REQUESTS | Przekroczony limit (minutowy, grupy operacji albo IP). |
| 500 | INTERNAL_ERROR | Błąd serwera allee. |
curl -sS -X PATCH "${ALLEE_API_URL:-https://api.allee.pl}/allee/listings/FILM-21ef85-3" \
-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'
{
"patches": [
{
"op": "replace",
"path": "/attributes/price",
"value": {
"amount": "54.90",
"currency": "PLN"
}
},
{
"op": "replace",
"path": "/attributes/stock",
"value": 6
}
]
}
JSON<?php
// allee API: PATCH /allee/listings/FILM-21ef85-3 (PHP 8, rozszerzenie curl)
$base = getenv('ALLEE_API_URL') ?: 'https://api.allee.pl';
$body = [
'patches' => [
[
'op' => 'replace',
'path' => '/attributes/price',
'value' => [
'amount' => '54.90',
'currency' => 'PLN',
],
],
[
'op' => 'replace',
'path' => '/attributes/stock',
'value' => 6,
],
],
];
$ch = curl_init($base . '/allee/listings/FILM-21ef85-3');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'PATCH',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('ALLEE_API_KEY'),
'Accept: application/vnd.allegro.public.v1+json',
'Content-Type: application/vnd.allegro.public.v1+json',
],
CURLOPT_POSTFIELDS => json_encode($body, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES),
CURLOPT_RETURNTRANSFER => true,
]);
$odp = curl_exec($ch);
echo 'HTTP ', curl_getinfo($ch, CURLINFO_RESPONSE_CODE), "\n", $odp, "\n";# allee API: PATCH /allee/listings/FILM-21ef85-3 (Python 3, biblioteka requests)
import os
import requests
BASE = os.environ.get("ALLEE_API_URL", "https://api.allee.pl")
headers = {
"Authorization": "Bearer " + os.environ["ALLEE_API_KEY"],
"Accept": "application/vnd.allegro.public.v1+json",
"Content-Type": "application/vnd.allegro.public.v1+json",
}
body = {
"patches": [
{
"op": "replace",
"path": "/attributes/price",
"value": {
"amount": "54.90",
"currency": "PLN",
},
},
{
"op": "replace",
"path": "/attributes/stock",
"value": 6,
},
],
}
r = requests.request("PATCH", BASE + "/allee/listings/FILM-21ef85-3", headers=headers, json=body, timeout=60, allow_redirects=False)
print("HTTP", r.status_code)
print(r.text)// allee API: PATCH /allee/listings/FILM-21ef85-3 (Node.js 18+, wbudowany fetch; plik .mjs)
const BASE = process.env.ALLEE_API_URL ?? "https://api.allee.pl";
const body = {
"patches": [
{
"op": "replace",
"path": "/attributes/price",
"value": {
"amount": "54.90",
"currency": "PLN"
}
},
{
"op": "replace",
"path": "/attributes/stock",
"value": 6
}
]
};
const res = await fetch(`${BASE}/allee/listings/FILM-21ef85-3`, {
method: "PATCH",
headers: {
Authorization: `Bearer ${process.env.ALLEE_API_KEY}`,
"Accept": "application/vnd.allegro.public.v1+json",
"Content-Type": "application/vnd.allegro.public.v1+json",
},
body: JSON.stringify(body),
redirect: "manual",
});
console.log("HTTP", res.status);
console.log(await res.text());// allee API: PATCH /allee/listings/FILM-21ef85-3 (C#, .NET 8+, HttpClient)
using System.Net.Http.Headers;
using System.Text;
var baseUrl = Environment.GetEnvironmentVariable("ALLEE_API_URL") ?? "https://api.allee.pl";
using var http = new HttpClient(new HttpClientHandler { AllowAutoRedirect = false });
using var req = new HttpRequestMessage(new HttpMethod("PATCH"), baseUrl + "/allee/listings/FILM-21ef85-3");
req.Headers.Authorization = new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("ALLEE_API_KEY"));
req.Headers.Accept.ParseAdd("application/vnd.allegro.public.v1+json");
var json = """
{
"patches": [
{
"op": "replace",
"path": "/attributes/price",
"value": {
"amount": "54.90",
"currency": "PLN"
}
},
{
"op": "replace",
"path": "/attributes/stock",
"value": 6
}
]
}
""";
req.Content = new StringContent(json, Encoding.UTF8);
req.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.allegro.public.v1+json");
using var res = await http.SendAsync(req);
Console.WriteLine($"HTTP {(int)res.StatusCode}");
Console.WriteLine(await res.Content.ReadAsStringAsync());// allee API: PATCH /allee/listings/FILM-21ef85-3 (Java 11+, java.net.http; uruchom: java Main.java)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
String base = System.getenv().getOrDefault("ALLEE_API_URL", "https://api.allee.pl");
String body = """
{
"patches": [
{
"op": "replace",
"path": "/attributes/price",
"value": {
"amount": "54.90",
"currency": "PLN"
}
},
{
"op": "replace",
"path": "/attributes/stock",
"value": 6
}
]
}
""";
HttpRequest req = HttpRequest.newBuilder(URI.create(base + "/allee/listings/FILM-21ef85-3"))
.header("Authorization", "Bearer " + System.getenv("ALLEE_API_KEY"))
.header("Accept", "application/vnd.allegro.public.v1+json")
.header("Content-Type", "application/vnd.allegro.public.v1+json")
.method("PATCH", HttpRequest.BodyPublishers.ofString(body))
.build();
HttpClient http = HttpClient.newBuilder().version(HttpClient.Version.HTTP_1_1).build();
HttpResponse<String> res = http.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println("HTTP " + res.statusCode());
System.out.println(res.body());
}
}// allee API: PATCH /allee/listings/FILM-21ef85-3 (Go 1.20+, net/http; uruchom: go run main.go)
package main
import (
"fmt"
"io"
"net/http"
"os"
"strings"
)
func main() {
base := os.Getenv("ALLEE_API_URL")
if base == "" {
base = "https://api.allee.pl"
}
body := `{
"patches": [
{
"op": "replace",
"path": "/attributes/price",
"value": {
"amount": "54.90",
"currency": "PLN"
}
},
{
"op": "replace",
"path": "/attributes/stock",
"value": 6
}
]
}`
req, err := http.NewRequest("PATCH", base+"/allee/listings/FILM-21ef85-3", strings.NewReader(body))
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer "+os.Getenv("ALLEE_API_KEY"))
req.Header.Set("Accept", "application/vnd.allegro.public.v1+json")
req.Header.Set("Content-Type", "application/vnd.allegro.public.v1+json")
klient := &http.Client{CheckRedirect: func(*http.Request, []*http.Request) error { return http.ErrUseLastResponse }}
res, err := klient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
dane, err := io.ReadAll(res.Body)
if err != nil {
panic(err)
}
fmt.Println("HTTP", res.StatusCode)
fmt.Println(string(dane))
}application/vnd.allegro.public.v1+json{
"sku": "FILM-21ef85-3",
"status": "ACCEPTED",
"submissionId": "3840cf94b7276dc2",
"offerId": "900000000000024",
"change": "UPDATED",
"publicationStatus": "ACTIVE",
"issues": []
}Usunięcie albo zakończenie oferty po SKU
DELETE /allee/listings/{sku}
wzór Amazon SP-APIallegro:api:sale:offers:writelimit: write
Szkic nigdy nieopublikowany → usunięty (change: DELETED). Oferta opublikowana → zakończona (change: ENDED; historia sprzedaży zostaje). ?mode=VALIDATION_PREVIEW — nic nie zmienia.
Zgodność: wzorowana na Amazon Selling Partner API — Listings Items — deleteListingsItem.
Uprawnienie: zakres allegro:api:sale:offers:write.
Grupa limitu: write.
Parametry ścieżki
sku string wymaganySKU (external.id): 1–100 znaków, bez „/” i znaków sterujących. W adresie zakoduj (np. spacja → %20).
Parametry zapytania
mode stringVALIDATION_PREVIEW = pełna walidacja bez zapisu (odpowiedź 200, status VALID/INVALID).
VALIDATION_PREVIEWOdpowiedzi
200 Usunięto / zakończono. · ListingSubmissionResponse
sku string zawszestatus string zawszeACCEPTED = zapisano; VALID = podgląd poprawny (nic nie zapisano); INVALID = błędy (nic nie zapisano).
ACCEPTED, INVALID, VALIDsubmissionId string zawszeIdentyfikator zgłoszenia (= X-Request-Id).
offerId string · null zawszechange string · null zawszeCo się stało z ofertą.
CREATED, UPDATED, UNCHANGED, DELETED, ENDED, nullpublicationStatus PublicationStatus · null zawszeissues array<ListingIssue> zawszePola obiektu
code string zawszeKod problemu (ten sam słownik co błędy walidacji oferty).
message string zawszeseverity string zawszeERROR blokuje zapis/publikację, WARNING nie blokuje.
ERROR, WARNING, INFOattributeNames array<string> zawszeAtrybuty, których dotyczy problem.
categories array<string> zawszeGrupy problemu, np. MISSING_ATTRIBUTE, INVALID_ATTRIBUTE, GPSR.
path string · nullPole w kształcie Allegro (np. productSet[0].product.parameters).
messageId integerNumer komunikatu wsadu (tylko w raporcie wsadu).
errors array<Error>Przy INVALID: te same problemy w kształcie Allegro.
Pola obiektu
code string zawszeKod maszynowy błędu — na nim opieraj obsługę (lista: przewodnik „Błędy”).
message string zawszeOpis dla programisty (po polsku).
details any zawszeDane dodatkowe albo null — np. id istniejącej oferty przy OfferDuplicate, {"current": "SENT"} przy błędzie statusu, {"retryAfterMs": 1200} przy limicie.
path string · null zawszePole żądania, którego dotyczy błąd, np. productSet[0].product.parameters.
userMessage string zawszeKomunikat, który można pokazać sprzedawcy.
Błędy
| HTTP | Kod | Znaczenie |
|---|---|---|
| 400 | VALIDATION_ERROR | Zła wartość parametru zapytania (400) albo pola treści (422); path wskazuje miejsce. |
| 401 | invalid_token | Brak, zły, wygasły albo odwołany token lub klucz (format OAuth, nagłówek WWW-Authenticate). |
| 403 | ACCOUNT_INACTIVE | Konto sprzedawcy jest nieaktywne. |
| 403 | AccessDenied | Brak zakresu albo zasób innego sprzedawcy. |
| 403 | KEY_QUARANTINED | Kwarantanna: działa tylko odczyt (wykryto nietypowe użycie). |
| 403 | KEY_SUSPENDED | Klucz albo dostęp aplikacji wstrzymany (przez sprzedawcę albo ochronę). |
| 404 | NOT_FOUND | Nie ma takiego zasobu (albo należy do innego sprzedawcy — dla wątków, zwrotów i spraw odpowiedź jest ta sama). |
| 429 | TOO_MANY_REQUESTS | Przekroczony limit (minutowy, grupy operacji albo IP). |
| 500 | INTERNAL_ERROR | Błąd serwera allee. |
curl -sS -X DELETE "${ALLEE_API_URL:-https://api.allee.pl}/allee/listings/FILM-21ef85-4" \
-H "Authorization: Bearer $ALLEE_API_KEY" \
-H "Accept: application/vnd.allegro.public.v1+json" \
-w '\nHTTP %{http_code}\n'<?php
// allee API: DELETE /allee/listings/FILM-21ef85-4 (PHP 8, rozszerzenie curl)
$base = getenv('ALLEE_API_URL') ?: 'https://api.allee.pl';
$ch = curl_init($base . '/allee/listings/FILM-21ef85-4');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'DELETE',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('ALLEE_API_KEY'),
'Accept: application/vnd.allegro.public.v1+json',
],
CURLOPT_RETURNTRANSFER => true,
]);
$odp = curl_exec($ch);
echo 'HTTP ', curl_getinfo($ch, CURLINFO_RESPONSE_CODE), "\n", $odp, "\n";# allee API: DELETE /allee/listings/FILM-21ef85-4 (Python 3, biblioteka requests)
import os
import requests
BASE = os.environ.get("ALLEE_API_URL", "https://api.allee.pl")
headers = {
"Authorization": "Bearer " + os.environ["ALLEE_API_KEY"],
"Accept": "application/vnd.allegro.public.v1+json",
}
r = requests.request("DELETE", BASE + "/allee/listings/FILM-21ef85-4", headers=headers, timeout=60, allow_redirects=False)
print("HTTP", r.status_code)
print(r.text)// allee API: DELETE /allee/listings/FILM-21ef85-4 (Node.js 18+, wbudowany fetch; plik .mjs)
const BASE = process.env.ALLEE_API_URL ?? "https://api.allee.pl";
const res = await fetch(`${BASE}/allee/listings/FILM-21ef85-4`, {
method: "DELETE",
headers: {
Authorization: `Bearer ${process.env.ALLEE_API_KEY}`,
"Accept": "application/vnd.allegro.public.v1+json",
},
redirect: "manual",
});
console.log("HTTP", res.status);
console.log(await res.text());// allee API: DELETE /allee/listings/FILM-21ef85-4 (C#, .NET 8+, HttpClient)
using System.Net.Http.Headers;
using System.Text;
var baseUrl = Environment.GetEnvironmentVariable("ALLEE_API_URL") ?? "https://api.allee.pl";
using var http = new HttpClient(new HttpClientHandler { AllowAutoRedirect = false });
using var req = new HttpRequestMessage(new HttpMethod("DELETE"), baseUrl + "/allee/listings/FILM-21ef85-4");
req.Headers.Authorization = new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("ALLEE_API_KEY"));
req.Headers.Accept.ParseAdd("application/vnd.allegro.public.v1+json");
using var res = await http.SendAsync(req);
Console.WriteLine($"HTTP {(int)res.StatusCode}");
Console.WriteLine(await res.Content.ReadAsStringAsync());// allee API: DELETE /allee/listings/FILM-21ef85-4 (Java 11+, java.net.http; uruchom: java Main.java)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
String base = System.getenv().getOrDefault("ALLEE_API_URL", "https://api.allee.pl");
HttpRequest req = HttpRequest.newBuilder(URI.create(base + "/allee/listings/FILM-21ef85-4"))
.header("Authorization", "Bearer " + System.getenv("ALLEE_API_KEY"))
.header("Accept", "application/vnd.allegro.public.v1+json")
.method("DELETE", HttpRequest.BodyPublishers.noBody())
.build();
HttpClient http = HttpClient.newBuilder().version(HttpClient.Version.HTTP_1_1).build();
HttpResponse<String> res = http.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println("HTTP " + res.statusCode());
System.out.println(res.body());
}
}// allee API: DELETE /allee/listings/FILM-21ef85-4 (Go 1.20+, net/http; uruchom: go run main.go)
package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
base := os.Getenv("ALLEE_API_URL")
if base == "" {
base = "https://api.allee.pl"
}
req, err := http.NewRequest("DELETE", base+"/allee/listings/FILM-21ef85-4", nil)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer "+os.Getenv("ALLEE_API_KEY"))
req.Header.Set("Accept", "application/vnd.allegro.public.v1+json")
klient := &http.Client{CheckRedirect: func(*http.Request, []*http.Request) error { return http.ErrUseLastResponse }}
res, err := klient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
dane, err := io.ReadAll(res.Body)
if err != nil {
panic(err)
}
fmt.Println("HTTP", res.StatusCode)
fmt.Println(string(dane))
}application/vnd.allegro.public.v1+json{
"sku": "FILM-21ef85-4",
"status": "ACCEPTED",
"submissionId": "e06fa881ccf8a1a7",
"offerId": "900000000000025",
"change": "DELETED",
"publicationStatus": null,
"issues": []
}