AddonsHub REST API v1
Programistyczny dostęp do katalogu modułów PrestaShop. Zarządzaj swoimi modułami, cenami, opisami i changelogiem bezpośrednio ze swojej aplikacji, CI/CD lub skryptu.
https://addonshub.pl/api/v1
application/json
1.0
Autentykacja
Publiczne endpointy (GET) nie wymagają autoryzacji. Operacje zapisu wymagają klucza API w nagłówku X-API-Key.
Klucz API jest powiązany z Twoim profilem twórcy. Możesz go wygenerować lub zresetować w panelu twórcy.
curl https://addonshub.pl/api/v1/modules \
-H "X-API-Key: twoj-klucz-api" \
-H "Content-Type: application/json"
Kody błędów
| Kod | Znaczenie |
|---|---|
| 200 | Sukces |
| 201 | Zasób utworzony |
| 204 | Sukces, brak treści (DELETE) |
| 400 | Nieprawidłowe żądanie (invalid JSON) |
| 401 | Brak lub nieprawidłowy klucz API |
| 403 | Brak uprawnień (nie jesteś właścicielem) |
| 404 | Zasób nie istnieje |
| 409 | Konflikt (np. moduł o takiej nazwie już istnieje) |
| 422 | Błędy walidacji — zwraca obiekt errors |
GET
/api/v1/modules
publiczny
Zwraca paginowaną listę opublikowanych modułów.
Parametry query
| Parametr | Typ | Opis |
|---|---|---|
q | string | Szukaj po nazwie i opisie |
category[] | string[] | Filtr po slugu kategorii (wielokrotny) |
free | bool | Tylko bezpłatne (true) |
sort | string | default | rating | newest | installs | price_asc | price_desc |
page | int | Strona (domyślnie 1, 20 wyników/stronę) |
GET /api/v1/modules?q=seo&sort=rating&page=1
{
"data": [
{
"slug": "seo-audit-pro",
"name": "SEO Audit Pro",
"tagline": "Kompleksowy audyt SEO dla sklepu PS",
"short_description": "...",
"version": "2.1.0",
"price": 49.0,
"is_free": false,
"rating": 4.8,
"reviews_count": 127,
"install_count": 3200,
"status": "published",
"audited": true,
"category": "seo",
"vendor": "prestaforge",
"available_locales": ["pl", "en", "fr"],
"updated_at": "2026-03-15"
}
],
"meta": {
"total": 48,
"page": 1,
"per_page": 20,
"total_pages": 3
}
}
GET
/api/v1/modules/{slug}
publiczny
Szczegóły konkretnego opublikowanego modułu.
GET /api/v1/modules/seo-audit-pro
{
"slug": "seo-audit-pro",
"name": "SEO Audit Pro",
"tagline": "Kompleksowy audyt SEO dla sklepu PS",
"short_description": "Audytuj i optymalizuj SEO całego sklepu.",
"version": "2.1.0",
"price": 49.0,
"is_free": false,
"rating": 4.8,
"reviews_count": 127,
"install_count": 3200,
"status": "published",
"audited": true,
"category": "seo",
"vendor": "prestaforge",
"available_locales": ["pl", "en", "fr"],
"updated_at": "2026-03-15",
"long_description": "<p>Pełny opis HTML...</p>",
"purchase_url": "https://tworca.pl/kup",
"demo_url": "https://demo.tworca.pl",
"license_info": "Licencja na 1 sklep",
"languages": ["pl", "en", "de"],
"compatibility": {"8.0": "full", "8.1": "full", "9.0": "partial"},
"php_requirement": ">=8.1",
"mysql_requirement": ">=5.7",
"requirements": "PrestaShop 8.0+\nPHP 8.1+",
"translations": {
"en": {
"name": "SEO Audit Pro",
"tagline": "Comprehensive SEO audit for your PS store",
"short_description": "Audit and optimize the SEO of your entire shop.",
"long_description": "<p>Full HTML description in English...</p>"
},
"fr": {
"name": "SEO Audit Pro",
"tagline": "Audit SEO complet pour votre boutique PS",
"short_description": "Auditez et optimisez le référencement de votre boutique.",
"long_description": "<p>Description HTML complète en français...</p>"
}
},
"created_at": "2024-01-10"
}
name, tagline, short_description i long_description zawsze zawierają treść w języku polskim (domyślny język platformy). Tłumaczenia na inne języki są w obiekcie translations. Pole available_locales to lista języków, dla których istnieje tłumaczenie (zawsze zaczyna się od "pl").
POST
/api/v1/modules
wymaga klucza
Tworzy nowy moduł w statusie draft. Slug generowany jest automatycznie z nazwy.
Body (JSON)
Pola name, tagline, short_description i long_description to treść w języku polskim. Tłumaczenia na inne języki podaj w polu translations.
| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
name | string | ✓ | Nazwa modułu (po polsku) |
tagline | string | Krótkie hasło (po polsku, max 250 znaków) | |
short_description | string | Krótki opis (po polsku, max 200 znaków) | |
long_description | string | Pełny opis HTML (po polsku) | |
version | string | Wersja, np. "1.0.0" | |
price | number | Cena w EUR (0 = bezpłatny) | |
purchase_url | string | URL zakupu u twórcy | |
demo_url | string | URL wersji demo | |
category | string | Slug kategorii | |
license_info | string | Opis licencji | |
languages | string[] | Kody języków interfejsu modułu, np. ["pl","en"] | |
compatibility | object | Wersje PS → status, np. {"8.1":"full"} | |
php_requirement | string | Wymag. PHP, np. ">=8.1" | |
requirements | string | Dodatkowe wymagania (plain text) | |
translations |
object | Tłumaczenia na inne języki. Klucze: en, fr, es, it. Każda wartość to obiekt z polami name, tagline, short_description, long_description (wszystkie opcjonalne). |
curl -X POST https://addonshub.pl/api/v1/modules \
-H "X-API-Key: twoj-klucz-api" \
-H "Content-Type: application/json" \
-d '{
"name": "Mój Nowy Moduł",
"tagline": "Najlepszy moduł dla PS",
"short_description": "Opis modułu po polsku.",
"long_description": "<p>Rozbudowany opis po polsku...</p>",
"version": "1.0.0",
"price": 29,
"category": "seo",
"languages": ["pl", "en", "fr"],
"compatibility": {"8.0": "full", "8.1": "full"},
"php_requirement": ">=8.1",
"translations": {
"en": {
"name": "My New Module",
"tagline": "The best module for PS",
"short_description": "Module description in English.",
"long_description": "<p>Full description in English...</p>"
},
"fr": {
"name": "Mon Nouveau Module",
"tagline": "Le meilleur module pour PS",
"short_description": "Description du module en français.",
"long_description": "<p>Description complète en français...</p>"
}
}
}'
curl -X POST https://addonshub.pl/api/v1/modules \
-H "X-API-Key: twoj-klucz-api" \
-H "Content-Type: application/json" \
-d '{
"name": "Mój Nowy Moduł",
"tagline": "Najlepszy moduł dla PS",
"short_description": "Opis w jednym zdaniu.",
"version": "1.0.0",
"price": 29,
"category": "seo",
"languages": ["pl"],
"compatibility": {"8.0": "full", "8.1": "full"},
"php_requirement": ">=8.1"
}'
{
"slug": "moj-nowy-modul",
"status": "draft",
"available_locales": ["pl", "en", "fr"],
"translations": {
"en": { "name": "My New Module", "tagline": "The best module for PS", ... },
"fr": { "name": "Mon Nouveau Module", ... }
},
...
}
PATCH
/api/v1/modules/{slug}
wymaga klucza
Częściowa aktualizacja modułu. Wysyłaj tylko pola, które chcesz zmienić. Działa tylko na własnych modułach. Akceptuje też PUT.
Dostępne pola
Pola tekstowe (name, tagline, short_description, long_description) to zawsze treść po polsku. Tłumaczenia na inne języki w polu translations.
| Pole | Typ | Opis |
|---|---|---|
name | string | Nazwa modułu (PL) |
tagline | string | Krótkie hasło (PL) |
short_description | string | Krótki opis (PL) |
long_description | string | Pełny opis HTML (PL) |
version | string | Numer wersji |
price | number | Cena w EUR |
purchase_url | string | URL zakupu |
demo_url | string | URL demo |
category | string | Slug kategorii (null = usuń kategorię) |
license_info | string | Opis licencji |
languages | string[] | Kody języków interfejsu |
compatibility | object | Wersje PS → status |
php_requirement | string | Wymag. PHP |
requirements | string | Dodatkowe wymagania |
translations |
object | Tłumaczenia. Klucze: en, fr, es, it. Wysłanie zastępuje istniejące tłumaczenia całego obiektu. Pola wewnątrz: name, tagline, short_description, long_description. |
curl -X PATCH https://addonshub.pl/api/v1/modules/moj-nowy-modul \
-H "X-API-Key: twoj-klucz-api" \
-H "Content-Type: application/json" \
-d '{
"price": 39,
"version": "1.1.0"
}'
curl -X PATCH https://addonshub.pl/api/v1/modules/moj-nowy-modul \
-H "X-API-Key: twoj-klucz-api" \
-H "Content-Type: application/json" \
-d '{
"short_description": "Nowy, lepszy opis modułu.",
"long_description": "<p>Rozbudowany opis HTML...</p>"
}'
curl -X PATCH https://addonshub.pl/api/v1/modules/moj-nowy-modul \
-H "X-API-Key: twoj-klucz-api" \
-H "Content-Type: application/json" \
-d '{
"translations": {
"en": {
"name": "My New Module",
"tagline": "The best module for PS",
"short_description": "Module description in English.",
"long_description": "<p>Full description in English...</p>"
},
"fr": {
"name": "Mon Nouveau Module",
"tagline": "Le meilleur module pour PS",
"short_description": "Description du module en français.",
"long_description": "<p>Description complète en français...</p>"
},
"es": {
"name": "Mi Nuevo Módulo",
"tagline": "El mejor módulo para PS",
"short_description": "Descripción del módulo en español."
},
"it": {
"name": "Il Mio Nuovo Modulo",
"tagline": "Il miglior modulo per PS",
"short_description": "Descrizione del modulo in italiano."
}
}
}'
curl -X PATCH https://addonshub.pl/api/v1/modules/moj-nowy-modul \
-H "X-API-Key: twoj-klucz-api" \
-H "Content-Type: application/json" \
-d '{
"short_description": "Zaktualizowany opis po polsku.",
"long_description": "<p>Nowy pełny opis PL...</p>",
"translations": {
"en": {
"short_description": "Updated description in English.",
"long_description": "<p>New full description EN...</p>"
}
}
}'
{
"slug": "moj-nowy-modul",
"name": "Mój Nowy Moduł",
"available_locales": ["pl", "en", "fr", "es", "it"],
"translations": {
"en": { "name": "My New Module", "tagline": "The best module for PS", ... },
"fr": { "name": "Mon Nouveau Module", ... },
"es": { "name": "Mi Nuevo Módulo", ... },
"it": { "name": "Il Mio Nuovo Modulo", ... }
},
...
}
translations zastępuje całkowicie dotychczasowy obiekt tłumaczeń. Aby zaktualizować tylko jeden język, pobierz najpierw aktualne tłumaczenia przez GET /modules/{slug}, zmodyfikuj odpowiedni klucz i wyślij z powrotem.
DELETE
/api/v1/modules/{slug}
wymaga klucza
Trwale usuwa moduł wraz ze zrzutami, changelog i recenzjami. Działa tylko na własnych modułach.
curl -X DELETE https://addonshub.pl/api/v1/modules/moj-nowy-modul \
-H "X-API-Key: twoj-klucz-api"
(pusta treść)
GET
/api/v1/modules/{slug}/changelog
publiczny
Lista wszystkich wpisów changeloga dla modułu, sortowana od najnowszych.
{
"module": "seo-audit-pro",
"data": [
{
"id": 42,
"version": "2.1.0",
"type": "minor",
"release_date": "2026-03-15",
"changes": [
"Dodano obsługę PS 9.x",
"Poprawiono wydajność crawlera",
"Nowy raport Core Web Vitals"
]
}
]
}
Typy wpisów
POST
/api/v1/modules/{slug}/changelog
wymaga klucza
Dodaje nowy wpis changeloga do modułu. Idealny do integracji z CI/CD — po każdym release automatycznie publikuj changelog.
Body (JSON)
| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
version | string | ✓ | Numer wersji, np. "2.1.0" |
changes | string[] | ✓ | Tablica opisów zmian |
type | string | bugfix | minor | security | major (domyślnie minor) | |
release_date | string | Data w formacie Y-m-d (domyślnie dziś) |
curl -X POST https://addonshub.pl/api/v1/modules/moj-modul/changelog \
-H "X-API-Key: twoj-klucz-api" \
-H "Content-Type: application/json" \
-d '{
"version": "2.1.0",
"type": "minor",
"release_date": "2026-05-18",
"changes": [
"Dodano obsługę PrestaShop 9.x",
"Poprawiono błąd z pustym koszykiem",
"Nowe tłumaczenie DE i FR"
]
}'
{
"id": 43,
"version": "2.1.0",
"type": "minor",
"release_date": "2026-05-18",
"changes": ["Dodano obsługę PrestaShop 9.x", ...]
}