Wystawiaj oferty, aktualizuj ceny i stany oraz odbieraj zamówienia prosto ze swojego systemu — sklepu, hurtowni albo integratora. Bez logowania się do panelu i bez plików CSV.
Klucz tworzysz w panelu: Sprzedawca → Integracje. Pokazujemy go jeden raz — trzymamy wyłącznie jego skrót, więc nie odtworzymy go ani my, ani nikt, kto dostałby się do bazy. Klucz należy do jednego sprzedawcy i nie sięgnie cudzych ofert ani cudzych zamówień.
Authorization: Bearer sm_live_...
Adres bazowy:
https://ihehncaaokbwbdqdztna.supabase.co/functions/v1/market-api/v1
limit_ofert przy tej pozycji, reszta paczki przechodzi normalnie.| Metoda | Ścieżka | Po co |
|---|---|---|
| GET | /ping | sprawdzenie klucza |
| GET | /categories | drzewo kategorii (slug + rodzic) |
| GET | /offers?since=&limit= | Twoje oferty |
| POST | /offers | wystawienie i aktualizacja (paczka do 200) |
| GET | /orders?since=&limit= | zamówienia do realizacji |
| POST | /orders/<id>/shipped | numer przesyłki |
Ofertę rozpoznajemy po sku — Twoim identyfikatorze. Ten sam plik możesz wysyłać codziennie: pozycja, która już istnieje, zostanie zaktualizowana, a nie zduplikowana.
curl -X POST "$BASE/offers" \
-H "Authorization: Bearer $KLUCZ" \
-H "Content-Type: application/json" \
-d '[{
"sku": "PV-450-MONO",
"title": "Panel fotowoltaiczny 450 W mono",
"description": "Pełny opis oferty — to on trafia do wyszukiwarek.",
"price_gross": 549.00,
"stock": 24,
"status": "active",
"category_slug": "oze-i-energia-fotowoltaika",
"image_url": "https://twoj-serwer/zdjecia/pv-450.jpg",
"location": "Nowy Tomyśl"
}]'
| Pole | Wymagane | Uwagi |
|---|---|---|
sku | tak | Twój identyfikator, po nim rozpoznajemy ofertę |
title | tak | bez WIELKICH LITER i bez numeru telefonu |
price_gross | tak | brutto w PLN, większe od zera |
category_slug | tak | z /categories |
stock | nie | domyślnie 0 |
status | nie | active (domyślnie), draft, ended |
image_url | nie | publiczny adres; nie kopiujemy pliku do siebie |
location | nie | miejscowość — dzięki niej oferta trafia na strony lokalne |
Odpowiedź jest pozycja po pozycji, więc jedna zła oferta nie wywraca całej paczki:
{
"przyjeto": 1,
"odrzucono": 1,
"wyniki": [
{ "ok": true, "sku": "PV-450-MONO", "offer_id": "…", "utworzono": true },
{ "error": "nieznana_kategoria", "sku": "PV-999", "detal": "panele-sloneczne" }
]
}
Pobierasz zamówienia zawierające Twoje pozycje wraz z danymi do wysyłki, a po nadaniu odsyłasz numer przesyłki.
curl "$BASE/orders?since=2026-09-01T00:00:00Z" -H "Authorization: Bearer $KLUCZ"
curl -X POST "$BASE/orders/<order_id>/shipped" \
-H "Authorization: Bearer $KLUCZ" -H "Content-Type: application/json" \
-d '{"carrier":"InPost","tracking_no":"6200000000000"}'
detal.status: "ended" — historia zamówień musi zostać spójna.| Kod | Znaczenie |
|---|---|
| 401 | brak_klucza, zly_klucz, klucz_odwolany |
| 429 | za_duzo_zapytan — odczekaj minutę |
| 400 | błąd danych; szczegóły przy pozycji |
| 500 | nasza awaria — powtórz za chwilę, zgłoś, jeśli wraca |