Playground
Playground (pasek boczny > Playground) pozwala na wykonywanie zapytań API na żywo przy użyciu Twojego prawdziwego klucza bez pisania kodu. To najszybszy sposób na przetestowanie nowej strony docelowej, debugowanie trudnej odpowiedzi lub porównanie trybów Auto, Single, Proxy i Browser obok siebie.
Otwórz go pod adresem foura.ai/dashboard#playground.
Jak to działa
Jeden formularz. Cztery silniki. Rzeczywisty ruch.
- Auto: inteligentne pobieranie. Podajesz URL oraz regułę
validate, a FourA wybiera najtańszą działającą ścieżkę. - Single: bezpośrednie pobieranie HTTP z realistycznymi charakterystykami sieciowymi przypominającymi przeglądarkę
- Proxy: zarządzane pobieranie przez rotacyjne proxy, opcjonalnie ograniczone do krajów widocznych dla celu
- Browser: otwiera URL w instancji przeglądarki Chrome dla stron renderowanych w JS
Zapytania są wykonywane przy użyciu klucza API wybranego na górze strony. Zużycie wlicza się do limitu tego klucza dokładnie tak samo jak wywołanie produkcyjne, więc uważaj na limit swojego planu podczas testów.
Wybór klucza
Rozwijana lista kluczy API zawiera wszystkie aktywne klucze, których możesz użyć: Twoje własne w sekcji My Keys, a następnie po jednej grupie dla każdej organizacji, do której należysz. Każdy członek może używać klucza organizacji, a zapytanie z jego użyciem obciąża plan właściciela organizacji. Wybierz klucz, do którego ma zostać przypisane zapytanie. Jeśli nie masz jeszcze żadnych aktywnych kluczy, monit na stronie przekieruje Cię do strony API Keys, aby go utworzyć.
Wybór trybu
Górny wiersz Mode przełącza między trybem Auto a silnikami manualnymi. Po wybraniu Auto formularz przełącza się na minimalny interfejs Auto (URL plus validate oraz kilka opcji). Zawsze widoczne są oba wiersze: Mode: Auto oraz Product: Single, Proxy, Browser. Wybór jednego odznacza drugi. Przełączanie produktów zmienia widoczne pola oraz silnik, do którego trafia zapytanie. Bieżący wybór jest zachowywany po odświeżeniu strony.
| Mode | Kiedy używać |
|---|---|
| Auto | Nowy cel lub strona o zróżnicowanych zabezpieczeniach. Auto wybiera najtańszą ścieżkę i zapamiętuje, co działa. |
| Single | Szybkie pobieranie HTTP. Najlepszy pierwszy wybór dla znanego hosta. |
| Proxy | Takie samo pobieranie z automatyczną rotacją proxy. Ustaw exitCountries, gdy potrzebujesz konkretnego kraju widocznego dla celu. |
| Browser | Ładuje stronę w instancji przeglądarki Chrome. Użyj, gdy dane pojawiają się dopiero po wykonaniu JavaScriptu. |
Tworzenie zapytania
Wiersz URL
Górny wiersz zawiera metodę HTTP (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS), docelowy URL oraz przycisk Send. Single, Proxy i Auto obsługują każdą metodę. Browser ignoruje metodę (Chrome zawsze wysyła GET do nawigacji) oraz body.
Zakładki zapytania
Poniżej wiersza URL pięć zakładek pozwala uzupełnić pozostałe parametry:
| Karta | Za co odpowiada |
|---|---|
| UI | Pola formularza dla timeoutów, przekierowań, flag, proxy, opcji specyficznych dla przeglądarki oraz reguł walidacji |
| Body | Dowolna treść body dla żądań POST / PUT / PATCH |
| Headers | Niestandardowe nagłówki żądania jako pary klucz-wartość |
| Cookies | Pliki cookie do wysłania z żądaniem |
| Raw | Dokładny ładunek JSON, który zostanie wysłany, jako podgląd tylko do odczytu z przyciskiem Copy JSON, a pod nim polecenie curl do odtworzenia żądania |
Wszystko, co zmienisz w UI / Body / Headers / Cookies, jest odzwierciedlane w Raw. Nie można pisać bezpośrednio w Raw: modyfikuj żądanie na pozostałych kartach. Czerwona kropka pojawia się na każdej karcie lub zwijanej sekcji zawierającej wartość inną niż domyślna dla silnika, dzięki czemu od razu widzisz wprowadzone modyfikacje.
Sekcje panelu UI
Karta UI grupuje ustawienia w zwijane sekcje. Puste pola przyjmują domyślne wartości ze schematu silnika. Sekcje, które nie mają zastosowania do bieżącego trybu, są ukryte.
- Timeouts:
timeout_ms,connect_timeout_ms,accept_timeout_ms,server_response_timeout_ms,dns_cache_timeout_sec. Tryb Auto udostępnia tylkotimeout_ms(całkowity budżet). - Redirects: przełączanie i ustawianie
followRedirects(0-20). Tryby Single i Proxy. Browser automatycznie podąża za przekierowaniami. - Flags:
unblockerdla trybów Single, Proxy i Browser (unblockerw trybie Browser wykonuje weryfikacje wymagane przez stronę);tryJsonDataireturnBufferdla Single i Proxy. Auto udostępnia zamiast tegoforceProxyorazreturnSession. - Proxy: wybierz konkretny identyfikator proxy dla trybów Single lub Browser albo ustaw
maxTries, zewnętrzny timeout dla Proxy,exitCountries,exitClassorazignoreProxiesdla silnika Proxy. Auto udostępnia równieżignoreProxies. Lista wyboruexitClassma trzy stany: brak wyboru nie wysyła żadnego pola,standardoznacza, że żądanie nigdy nie może eskalować, apremiumpozwala na eskalację do węzła wyjściowego premium, gdy standardowa pula ma trudności. Brak wyboru istandardto różne żądania, więc pozostaw pole wyboru puste, chyba że celowo wybierasz jeden z tych wariantów. Opcja Premium wymaga planu obejmującego wyjścia premium: zobacz exitClass. - Browser profile: trzy kaskadowe listy rozwijane, os, browser i version, zawierające profile, które FourA potrafi rzeczywiście emulować. Pojawiają się w trybach Single i Proxy. Pozostaw je puste dla najnowszego Chrome. Każda lista zawęża pozostałe dwie, więc kombinacja bez pokrycia nigdy się nie pojawi. Sekcja wymaga włączenia
unblocker: przy wyłączonej opcji nagłówki przeglądarki nie są wysyłane, profil zostałby zastosowany tylko częściowo, a API odrzuci takie żądanie. - Browser: opcje dostępne wyłącznie dla przeglądarki, takie jak
checkStatusicheckText. - Validate: status accept i status fail przyjmują kody statusu rozdzielone przecinkami (
validate.status), a body accept i body fail przyjmują ciągi znaków z alternatywami rozdzielonymi za pomocą|(validate.data). Dostępne dla Single, Proxy i Auto. Browser używa zamiast tegocheckStatusorazcheckText. Formularz nie zawiera pola dla reguł nagłówków (validate.headers).
Gdy uruchomienie zwróci działające proxy, na dole karty interfejsu pojawi się sekcja Working proxies. Zawiera ona do 20 identyfikatorów proxy, od najnowszych, każdy z krajem wyjściowym i czasem. Kliknięcie use wstawia wybrane proxy do pola proxy w trybie Single lub Browser (silnik Proxy dobiera je samodzielnie), a × usuwa je z listy.
Zakres kraju wyjściowego (tryb Proxy)
Pole exitCountries w trybie Proxy przyjmuje rozdzielaną przecinkami listę dwuliterowych kodów krajów widocznych dla celu (CZ, GB). Wartości są przycinane z białych znaków, konwertowane na wielkie litery i deduplikowane podczas wysyłania. Wybór działa jako ścisła biała lista: serwery proxy o nieznanym kraju wyjściowym są wykluczane, a żądanie nigdy nie przełącza się awaryjnie na inny kraj. Jeśli w bieżącej puli nie ma dopasowania, odpowiedź zwraca code: "no_eligible_proxy" z żądanym zakresem przekazanym zwrotnie w details.exitCountries. Zachowaj zakres i ponów próbę później.
Gdy wywołanie proxy powiedzie się w ramach ograniczenia zakresu, pasek odpowiedzi wyświetla exit <CODE> obok identyfikatora proxy, co pozwala zweryfikować, czy zwrócony kraj jest zgodny z żądanym.
Resetowanie z paska narzędzi
Przycisk Reset na pasku narzędzi (obok pozycji History i Saved) przywraca stan początkowy środowiska testowego. Ponieważ jest to operacja nieodwracalna, otwiera okno dialogowe z dokładną listą elementów do usunięcia: wszystkie trzy formularze produktów (Single, Proxy, Browser), zapisane pliki cookie, przeniesione serwery proxy oraz bieżąca odpowiedź. Zapisane szablony i wybrany klucz API zostają zachowane. Kliknij Reset everything, aby potwierdzić; każda inna akcja anuluje operację.
Wysyłanie i anulowanie
Kliknij Send, aby wysłać żądanie. Podczas wykonywania wywołania prawa kolumna przechodzi w stan ładowania ze wskaźnikiem postępu i przyciskiem Cancel. Kliknij Cancel (lub naciśnij przycisk ponownie na urządzeniu mobilnym), aby przerwać operację. Anulowane żądanie przywraca domyślny widok z komunikatem "Request canceled." zamiast wyświetlania błędu.
Karta odpowiedzi przełącza się na wynik w momencie zakończenia (lub niepowodzenia) żądania. Wywołania w trybie Auto mogą trwać dłużej niż w trybach manualnych, ponieważ drabina eskalacji może wymagać przejścia przez kilka poziomów dla nowego celu.
Odczytywanie odpowiedzi
Kolumna odpowiedzi odzwierciedla układ żądania za pomocą własnych kart:
| Tab | What it shows |
|---|---|
| Body | Przetworzona treść odpowiedzi. Przełącza się między widokami JSON, HTML i Text w zależności od otrzymanych danych. |
| Headers | Nagłówki odpowiedzi, po jednym w wierszu. |
| Cookies | Pliki cookie zwrócone przez cel, w widoku przetworzonym (grupowane według hosta) oraz surowym (tekst Set-Cookie). Widok przetworzony oznacza pliki cookie typu host-only plakietką HO; pliki cookie dla domeny pozostają nieoznaczone. |
| Raw | Pełna struktura JSON zwrócona przez API. |
Pasek narzędzi odpowiedzi zawiera przyciski Copy i Download dla całej odpowiedzi oraz pole Find in response (Ctrl+K lub Cmd+K) do przeszukiwania otwartej karty, z nawigacją po wynikach za pomocą klawiszy Enter i Shift+Enter. Karty Body, Headers oraz Cookies mają również własne przyciski Copy i Download działające w obrębie danej karty.
Pasek meta nad zakładkami pokazuje nadrzędny status HTTP, łączny czas, ID proxy, które obsłużyło wywołanie, oraz (w przypadku wywołania Proxy ze zdefiniowanym zakresem) dwuliterowy exit <CODE>. Dla uruchomień Auto pasek pokazuje także szczebel drabiny, który zwrócił odpowiedź, liczbę wykonanych prób podrzędnych oraz wykorzystane kredyty.
Czego wymagało wywołanie
Zdanie pod paskiem meta opisuje słownie, co obsłużyło stronę. W przypadku uruchomienia Auto wskazuje szczebel (sesję, którą FourA już miało dla danego hosta, zwykły request, rotacyjne proxy, prawdziwą przeglądarkę lub najpierw przeglądarkę, a potem tani replay), informację, czy rozwiązano challenge, liczbę prób oraz poniesiony koszt.
Gdy któryś z limitów Twojego planu zablokował wywołanie, zdanie informuje o tym w pierwszej kolejności: "Zatrzymano przez Twój plan, a nie przez witrynę", a następnie podaje, który to limit (wyczerpane dzisiejsze żądania przeglądarki, zbyt wiele równoległych żądań w toku, wykorzystane kredyty w tym okresie itd.) wraz z linkiem do Usage & Limits. Komunikat ten jest tworzony na podstawie kodu X-FourA-Limit zwróconego przez API, dzięki czemu przy nieudanym pobraniu trudnej strony wiesz, czy zatrzymała je witryna, czy Twój plan.
Przenoszenie wartości między uruchomieniami
Po każdym uruchomieniu, które zwróciło dane sesji wielokrotnego użytku, mały element sterujący Carry na pasku narzędzi odpowiedzi pokazuje dostępne opcje:
- Uruchomienia Auto oferują pełną trójkę
session(proxy,cookies,userAgent). - Uruchomienia Browser oferują
userAgentz odpowiedzi oraz ID proxy, jeśli zostało użyte. - Uruchomienia Proxy oferują zwrócone ID proxy, profil przeglądarki, gdy rotacja wybrała inny niż żądany, oraz
exitClass, który obsłużył wywołanie, co pozwala na bezpośrednie ponowne wysłanie odpowiedzi premium.
Kliknij Carry i wybierz jednym kliknięciem, gdzie zastosować każdą wartość: userAgent staje się nagłówkiem User-Agent w Single lub Proxy, a ID proxy trafia do pola proxy w Single lub Browser. Pola, które otrzymały przeniesioną wartość, pokazują czerwoną kropkę "zmodyfikowano", dzięki czemu widzisz, co uległo zmianie.
Przeniesiony profil przeglądarki wypełnia trzy pola wyboru: system operacyjny, przeglądarkę i wersję, a także włącza unblocker, zgodnie z tą samą regułą, która obowiązuje przy ręcznym wyborze profilu. Opcja ta jest dostępna dopiero po załadowaniu katalogu profili, ponieważ formularz składa się z trzech pól wyboru, a nie z pojedynczego pola ID.
Profil to jedyna wartość wskazująca, że request, który zadziałał, różnił się od wpisanego przez Ciebie: Proxy zgłasza profile tylko wtedy, gdy nastąpiło przejście na inną rodzinę przeglądarek niż żądana. Jeśli wykonasz replay bez niego, powtórzysz wersję, która zakończyła się niepowodzeniem. Zobacz Dlaczego żądanie Proxy wyczerpało limit prób.
Rozwiń do pełnego ekranu
Ikona rozwijania na pasku narzędzi odpowiedzi przenosi kartę odpowiedzi z widoku dzielonego do nakładki pełnoekranowej. Używaj jej do głębokich struktur JSON, długich zrzutów Set-Cookie lub szerokiej zawartości HTML, gdzie kolumna o połowie szerokości jest zbyt ciasna. Przewijanie samej strony jest blokowane, gdy nakładka pozostaje otwarta. Kliknij ikonę ponownie (lub naciśnij Escape), aby ją zwinąć.
Narzędzie reprodukcji curl
Na karcie Raw żądania, pod kodem JSON, blok curl wyświetla dokładny odpowiednik budowanego żądania w wierszu poleceń wraz z przyciskiem Copy curl. Skopiuj go, aby odtworzyć request z poziomu terminala, udostępnić go członkowi zespołu lub wkleić do zgłoszenia błędu.
W przypadku kluczy z możliwością odkrycia przycisk Reveal key obok fragmentu kodu wstawia rzeczywisty klucz w postaci zwykłego tekstu bezpośrednio do polecenia curl, co pozwala na skopiowanie i natychmiastowe uruchomienie. Kliknij ponownie, aby ukryć. Starsze klucze (utworzone przed wdrożeniem funkcji odkrywania) zachowują placeholder PASTE_PLAINTEXT_FOR_<key-name>; wygeneruj klucz ponownie na stronie API Keys, aby umożliwić jego odkrywanie.
Każde odkrycie klucza jest rejestrowane w dzienniku audytu na serwerze, a sam klucz w postaci jawnej istnieje w pamięci wyłącznie podczas bieżącej sesji strony.
Zapisywanie presetów
Jeśli wielokrotnie konfigurujesz ten sam cel, zapisz go. Kliknij Save w wierszu kart żądania, aby zapisać bieżącą konfigurację jako nazwany preset.
Otwórz Saved na pasku narzędzi, aby przejrzeć swoje presety. Kliknij Load, aby wypełnić formularz, lub Delete, aby usunąć wybrany.
Żądanie otwarte z karty DevTools rozszerzenia Chrome FourA ładuje się z wybranym kluczem rozszerzenia, o ile klucz ten znajduje się na Twoim koncie, o czym informuje komunikat na stronie. W przeciwnym razie pojawi się prośba o wybranie klucza. Ponownie odtworzone żądanie, które nie ustawia unblocker, uruchamia się z włączoną tą opcją, podobnie jak robi to API.
| Pole presetu | Co przechowuje |
|---|---|
| Name | Krótka etykieta (do 100 znaków) |
| Description | Opcjonalne notatki (do 500 znaków) |
| Endpoint | Silnik przeznaczony dla presetu (auto / single / proxy / browser) |
| Config | Pełny payload żądania, w tym pola interfejsu, nagłówki, pliki cookie i treść (body) |
Presety są przypisane do Twojego konta użytkownika i nie są współdzielone z członkami zespołu.
Odtwarzanie z historii
Każde uruchomione żądanie jest rejestrowane. Otwórz History na pasku narzędzi, aby zobaczyć ostatnie 20 uruchomień, posortowanych od najnowszych.
Każdy wiersz zawiera endpoint, docelowy URL, status oraz czas. Kliknij Replay w dowolnym wierszu, aby załadować to żądanie z powrotem do formularza, a następnie Send, aby uruchomić je ponownie.
Historia jest automatycznie ograniczona do Twojego konta: widzisz tylko własne uruchomienia.
Otwieranie z poziomu aktywności
Okno szczegółów Activity Log zawiera przycisk Open in Playground. Kliknij go, a Playground załaduje zarówno zarchiwizowane żądanie, jak i zarchiwizowaną odpowiedź. Formularz wypełni się danymi z zapisanego payloadu, a karta odpowiedzi pokaże zawartość zwróconą w tamtym momencie przez API wraz z plakietką "archived" na pasku metadanych proxy ("archived
W tym miejscu możesz zmienić parametr i kliknąć Send, aby wysłać nowe żądanie do produkcyjnego API, lub po prostu przejrzeć zarchiwizowany payload bez ponownego uruchamiania. Dane payload są przechowywane przez 24 godziny, więc starsze wiersze w Activity nie będą miały odpowiedzi możliwej do ponownego załadowania.
Wskazówki
- Zacznij w Playground przed napisaniem kodu dla nowego celu. Przy włączonym trybie Auto w kilka sekund dowiesz się, czy wystarczy tani fetch, czy strona wymusza renderowanie w przeglądarce.
- W przypadku celów z blokadą regionalną wykonaj jedno wywołanie Proxy z ustawionym
exitCountries, a następnie przekaż zwrócone proxy ID do wywołania Browser, aby renderowanie JavaScript odbywało się przez ten sam węzeł wyjściowy. - Zapisuj presety dla każdego regularnie scrapowanego celu. Ponowne uruchomienie zapisanego presetu zajmuje jedno kliknięcie; odtwarzanie żądania z pamięci trwa dłużej.
- Użyj zakładki Cookies do debugowania scrapowania opartego na sesjach. Widok surowych nagłówków Set-Cookie pokazuje dokładnie to, co odesłał cel.
- Gdy cel odrzuca żądania, wypróbuj inną pozycję w profilach przeglądarki przed sięgnięciem po cięższy silnik. Zmiana profilu przeglądarki jest darmowa, natomiast pełny render już nie.
- Żądania w Playground są rozliczane z wybranego klucza. Użyj dedykowanego klucza z niskim limitem do swobodnych testów, aby zachować przejrzystość zużycia produkcyjnego.
Powiązane
- API Endpoints: Pełna dokumentacja parametrów dla wszystkich czterech silników, w tym
exitCountriesi pól profilu przeglądarki - Smart Fetch (Auto): Jak działa tryb Auto pod maską
- Wybór odpowiedniego endpointu: Kiedy wybrać Auto, Single, Proxy lub Browser
- Klucze API: Zarządzaj kluczami używanymi do autoryzacji żądań w Playground
- Dziennik aktywności: Otwórz poprzednie żądanie bezpośrednio w Playground
- Przegląd panelu: Wszystkie sekcje paska bocznego