← Panel rodziców

API kampanii i mediów.

Adres bazowy https://marceltrzcinski.pl/api.php?route=. Używaj HTTPS. Token utworzysz w panelu administratora w sekcji „Dostępy API”. Token wygasa po 90 dniach i może zostać wcześniej unieważniony.

Autoryzacja

Authorization: Bearer TWÓJ_TOKEN

Tokeny mają zakresy media:read, media:write, campaign:read i campaign:write. Uwierzytelnione aplikacje zewnętrzne używają nagłówka Bearer. Panel korzysta z sesji oraz nagłówka X-CSRF-Token przy każdej zmianie danych.

Duże pliki i wznawianie

  1. POST uploads z JSON {"name":"film.mp4","size":123456789}. Odpowiedź zawiera id, offset i chunk_bytes.
  2. PATCH uploads/ID z binarnym fragmentem pliku, nagłówkami Content-Type: application/octet-stream i Upload-Offset: 0. Rozmiar fragmentu wynosi maksymalnie 8 MiB. Odpowiedź zwraca nowy offset.
  3. Po przerwaniu połączenia wywołaj GET uploads/ID i kontynuuj od offsetu zwróconego przez serwer. Przy 409 pobierz ponownie stan przesyłania.
  4. Po wysłaniu wszystkich fragmentów wywołaj POST uploads/ID/complete z pustym obiektem JSON. Operację można powtórzyć. Otrzymasz rekord medium. Nowy plik jest prywatny.
  5. Niedokończone przesyłanie anulujesz przez DELETE uploads/ID.

Limit pojedynczego pliku wynosi 50 GiB. Obsługiwane są JPEG, PNG, GIF, WebP, AVIF, MP4, MOV, WebM, MP3, WAV i OGG. Typ jest rozpoznawany z zawartości pliku.

Biblioteka i pobieranie

Metoda i zasóbDziałanie
GET mediaLista do 100 mediów. Kolejną stronę pobierzesz przez parametr &offset=100. Odpowiedź zawiera next_offset.
PATCH media/IDJSON {"title":"Tytuł","is_public":false}. Zmienia tytuł i widoczność.
GET storageLiczba plików i zajęte miejsce kampanii, wolne miejsce na dysku oraz limity przesyłania.
GET /media.php?id=IDOdczyt pliku. Prywatny wymaga sesji lub tokenu media:read. Publiczny jest dostępny bez logowania. Obsługiwane są HEAD i pojedyncze zakresy Range: bytes=0-1023.

Parametr &download=1 wymusza pobieranie. Pliki są wskazywane identyfikatorem nadanym przez API. API operuje w wydzielonym magazynie kampanii.

Plan dni, sponsorzy i postęp

Metoda i zasóbDane
GET overviewUstawienia, dzień kampanii, historia kwot, statystyka mediów i najbliższe działania.
POST days{"day_date":"2026-11-11","raised_cents":10000,"note":"Notatka prywatna"}. Jeden wpis na datę, ponowne wywołanie aktualizuje wpis. Kwoty są podawane w groszach.
GET/POST events
PATCH/DELETE events/ID
Pola event_date, title, description, channel, status, is_public, opcjonalne media_id.
GET/POST sponsors
PATCH/DELETE sponsors/ID
Pola name, description, website, is_main, opcjonalne logo_media_id. Logo musi być publicznym obrazem z biblioteki.
POST settingsPola campaign_start, goal_cents, facebook_url, instagram_url. Wysłanie całego formularza jest wymagane.
GET publicDane publicznej strony. Publikowane media i zaplanowane publiczne wydarzenia. Kwota z ostatnią datą aktualizacji. Prywatne notatki dzienne są dostępne w panelu.

Kanały to strona, facebook, instagram, wydarzenie i inne. Statusy to draft, planned i published. Szkic jest prywatny. Plan publikacji jest prowadzony ręcznie, a linki profili można wykorzystać przy dalszej integracji z Meta.

Odpowiedzi

Błędy mają postać {"error":"Komunikat"}. Kody obejmują 401 — brak logowania, 403 — brak uprawnień lub CSRF, 409 — konflikt offsetu lub niekompletny plik, 413 — przekroczenie rozmiaru, 415 — niedozwolony typ, 422 — błędne dane, 428 — wymagane nowe hasło, 429 — ograniczenie prób logowania, 507 — brak miejsca.

Oficjalna zbiórka Marcela ↗