Zacznij od jednego rynku i małego zakresu
Klucz przechowuj na serwerze i przekazuj w nagłówku X-API-Key. Dla ArbiScan podstawowy adres to https://api.arbiscan.pl/v1. Źródła wybierasz filtrem bookmakers, na przykład betclic,superbet. Te identyfikatory dotyczą polskich ofert. ArbiScan dostarcza niezależne API, nie oficjalny interfejs tych operatorów.
Odczytaj dostępne źródła i rynki zamiast zakładać, że każdy mecz ma identyczny zakres. Zacznij od GET /odds?bookmakers=betclic,superbet&limit=5, a następnie dopasuj filtry do potrzeb aplikacji. Publiczny przykład w dokumentacji używa danych demonstracyjnych.
Dokończ paginację w obrębie tego samego zestawu
W GET /odds limit wynosi od 1 do 500 wydarzeń na stronę, domyślnie 200. Jeśli otrzymasz next_cursor, przekaż go w parametrze cursor kolejnego żądania i zachowaj pozostałe filtry. Nie dopisuj stron bez sprawdzenia, czy dotyczą tego samego zestawu danych.
HTTP 409 z kodem snapshot_changed lub cursor_version_expired oznacza konieczność rozpoczęcia od pierwszej strony. Porzuć częściowo zebrany zestaw. W przeciwnym razie możesz zdublować wydarzenia albo połączyć ceny z niezgodnych obserwacji. Ogranicz liczbę ponownych prób i uwzględnij je w budżecie zapytań.
Czas odpowiedzi nie jest czasem obserwacji
Pola last_update i last_seen opisują obserwację danych, a nie moment otwarcia Twojej aplikacji. Zachowuj je po zapisaniu odpowiedzi w cache. Nie nadpisuj ich aktualną godziną tylko dlatego, że ponownie wyświetlasz kurs.
Parametr max_age_seconds przyjmuje wartości od 60 do 900; include_stale nie jest obsługiwany w tym publicznym odczycie. Pusta tablica events może oznaczać brak pasujących aktualnych ofert. Nie zamieniaj brakującego kursu na zero. Dla użytkownika rozdziel brak oferty, nieaktualne dane i awarię odczytu.
Obsłuż błędy według przyczyny
Każdy rodzaj błędu wymaga innej reakcji. Samo ponawianie całej kolejki co sekundę może pogorszyć problem i szybko zużyć budżet.
- 401: sprawdź klucz na serwerze; nie powtarzaj bez końca tej samej autoryzacji.
- 403: sprawdź aktywność dostępu i uprawnienia endpointu.
- 409: przy konflikcie kursora rozpocznij nowy, spójny odczyt.
- 429: respektuj Retry-After oraz limit dzienny i minutowy konta.
- 503: ponów po opóźnieniu, a poprzednie dane wyświetlaj z prawdziwym czasem obserwacji.
Zabezpiecz klucz i dobierz częstotliwość
Nie umieszczaj sekretu w JavaScripcie wysyłanym do przeglądarki, repozytorium ani narzędziach analitycznych. Loguj status i identyfikator żądania, bez nagłówka z kluczem. Jeśli sekret wycieknie, wymień go i unieważnij poprzedni; uwzględnij liczbę aktywnych kluczy dopuszczoną przez plan.
Jeden serwerowy odczyt może zasilać wiele ekranów Twojej aplikacji. Częstotliwość dobierz do rzeczywistej świeżości źródła i limitów, nie do szybkości animacji interfejsu. Obecny zakres ArbiScan to prematch. Dostępność webhooka nie zmienia tego w feed zakładów live ani archiwum kursów.
Pytania i odpowiedzi
Czy mogę użyć klucza bezpośrednio w aplikacji React?
Nie umieszczaj go w kodzie klienta. Użyj własnego serwera, który przechowuje sekret i udostępnia aplikacji tylko potrzebny wynik.
Czy API Superbet i Betclic obejmuje inne kraje?
Filtry źródeł w ArbiScan dotyczą polskich ofert. Nie oznaczają pokrycia wszystkich krajowych serwisów tych marek.