Bez KYC — bez dowodu, bez selfie, bez dokumentów. Płać kryptowalutą: BTC, USDT, USDC, ETH, SOL, LTC
Język: Polski
Pobierz klucz API

Dokumentacja · API reference

Format odpowiedzi: każde pole wyszukiwania, wyjaśnione

Odpowiedź wyszukiwania to jeden obiekt JSON: kilka pól o wywołaniu, a potem uszeregowana tablica results. Każdy wynik mówi, czy jego strona została odczytana, a jeśli tak, zawiera treść. Oto każde pole, wraz ze statusami, które agent powinien obsłużyć.

Ostatnia aktualizacja: · 5 min czytania

Szybka odpowiedź

Co zwraca API LLMWebSearch dla wyszukiwania?

LLMWebSearch zwraca JSON z query, created_at, credits_used oraz uszeregowaną tablicą results. Każdy wynik ma swoją pozycję, tytuł, URL, host i snippet oraz content_status; gdy jest to ok, główna treść strony znajduje się w content z word_count. Jedno wyszukiwanie z odczytem do 3 stron kosztuje 1 kredyt, od 1,20 USD/1K wyszukiwań według stanu na październik 2026. Bez KYC; płatność kryptowalutą.

Które pola opisują wywołanie?

Najwyższy poziom odpowiedzi /search.

PoleTypZnaczenie
querystringZapytanie w postaci, w jakiej je wykonano, po przycięciu spacji
created_atstringKiedy wykonano wyszukiwanie, ISO 8601 w UTC
credits_usedintegerIle kosztowało wywołanie: 1 lub 2, gdy read wynosiło od 4 do 10
resultsarrayUszeregowane wyniki, najlepszy pierwszy, maksymalnie max_results pozycji

Jakie pola niesie każdy wynik?

Pole, którego strona lub wynik wyszukiwania nie dostarcza, jest pomijane, a nie wysyłane jako puste.

PoleTypGdy występujeZnaczenie
positionintegerZawszePozycja w wyszukiwaniu, zaczynając od 1
titlestringZawszeTytuł wyniku
urlstringZawszeAdres strony
hoststringZawszeNazwa hosta strony, przydatna do grupowania lub cytowania
snippetstringZawszeKrótki fragment pokazany przez wyszukiwanie
published_atstringGdy data jest znanaData publikacji ze strony lub z wyniku wyszukiwania
content_statusstringZawszeCzy strona została odczytana, a jeśli nie, to dlaczego
contentstringGdy content_status wynosi okGłówna treść jako Markdown lub zwykły tekst, przycięta na max_chars
word_countintegerGdy content_status wynosi okSłowa w całym wyodrębnionym tekście, liczone przed przycięciem
target_statusintegerZ target_refusedKod statusu HTTP, którym odpowiedział serwis, np. 403 lub 429

Co oznacza każdy content_status?

Żadna z tych zmian nie wpływa na cenę wyszukiwania. Dotyczą jednej strony, nigdy całego zapytania.

content_statusZnaczenieCo powinien zrobić agent
okStrona została odczytana; content zawiera jej główny tekstUżyj go i zacytuj url
not_requestedWynik wykracza poza liczbę readZwiększ read lub w razie potrzeby odczytaj go przez /extract
blocked_by_robotsrobots.txt tego serwisu nie pozwala naszemu czytnikowi na tej stronieOprzyj się na snippecie lub innym źródle
blocked_by_site_policySerwis deklaruje Content-Signal: ai-input=noOprzyj się na snippecie lub innym źródle
target_refusedSerwis odrzucił zapytanie; zobacz target_statusNie ponawiaj próby dla tej strony; użyj innego źródła
fetch_failedBłąd DNS, TLS lub połączenia albo strona już nie istniejeSpróbuj innego wyniku; późniejsze ponowienie może zadziałać
fetch_timeoutStrona nie odpowiedziała w ciągu 15 sekundSpróbuj innego wyniku; późniejsze ponowienie może zadziałać
unsupported_contentLink wskazuje plik, którego nie możemy zamienić na tekstUżyj snippetu lub innego wyniku

Jak wygląda pełna odpowiedź?

Poniższy przykład poprosił o 5 wyników z odczytem pierwszych 4, więc kosztował 2 kredyty. Wyniki 1 i 3 zostały odczytane. Wynik 2 należy do serwisu, którego robots.txt nie wpuszcza naszego czytnika, wynik 4 odrzucił zapytanie, a wynik 5 wykracza poza read. Tytuły, URL-e i wartości są przykładowe.

Odpowiedź POST /search (przykładowa)
{
  "query": "how to rotate api keys without downtime",
  "created_at": "2026-10-22T10:15:04Z",
  "credits_used": 2,
  "results": [
    {
      "position": 1,
      "title": "Rotating API keys",
      "url": "https://docs.example.com/security/key-rotation",
      "host": "docs.example.com",
      "snippet": "Create a second key, deploy it everywhere, then revoke the first one.",
      "published_at": "2026-09-30",
      "content_status": "ok",
      "content": "# Rotating API keys\n\n## Zero-downtime rotation\n\n1. Create a second key.\n2. Deploy it to every service.\n3. Revoke the old key.",
      "word_count": 948
    },
    {
      "position": 2,
      "title": "Key rotation checklist",
      "url": "https://blog.example.org/key-rotation-checklist",
      "host": "blog.example.org",
      "snippet": "Keep two keys active during the switch and alert on the old one.",
      "content_status": "blocked_by_robots"
    },
    {
      "position": 3,
      "title": "Secrets management basics",
      "url": "https://security.example.net/secrets-basics",
      "host": "security.example.net",
      "snippet": "Never commit keys to a repository.",
      "content_status": "ok",
      "content": "# Secrets management basics\n\n**Never** commit keys to a repository.",
      "word_count": 1310
    },
    {
      "position": 4,
      "title": "Key management service guide",
      "url": "https://cloud.example.com/kms-guide",
      "host": "cloud.example.com",
      "snippet": "Store keys in a managed vault and rotate them on a schedule.",
      "content_status": "target_refused",
      "target_status": 403
    },
    {
      "position": 5,
      "title": "API key best practices",
      "url": "https://dev.example.com/api-key-best-practices",
      "host": "dev.example.com",
      "snippet": "Scope each key to one service and one environment.",
      "content_status": "not_requested"
    }
  ]
}

Które wyniki otrzymują status strony inny niż not_requested?

Tylko pierwsze read wyników oraz każdy element wywołania /extract. To strony, które nasz reader faktycznie próbował odczytać. Wszystko poza liczbą read pozostaje not_requested, niezależnie od tego, co odpowiedziałby serwis.

Kolejność nigdy się nie zmienia: reader pracuje na pozycjach 1, 2, 3 i tak dalej, nigdy na późniejszym wyniku zamiast wcześniejszego, który zawiódł. Jeśli agent potrzebuje zamiennika dla odmówionej strony, może odczytać kolejny wynik przez /extract.

Jak wygląda odpowiedź extract?

/extract zwraca credits_used oraz tablicę results w kolejności przesłanych URL-i. Każdy element ma url i content_status; z ok dodaje title, content i word_count, a z target_refused dodaje target_status. Nie ma position, host ani snippet, ponieważ nie uruchomiono wyszukiwania.

Referencja extract pokazuje pełny przykład i wyjaśnia, jak liczone są jej kredyty.

Jak zamienić wyniki w kontekst dla modelu?

Numeruj źródła, trzymaj URL przy każdym z nich i przekazuj tylko to, czego potrzebuje model. Kompaktowy układ sprawdza się dobrze: [1] title — url, potem treść tej strony, potem kolejne źródło. Poproś model, aby cytował za pomocą tych samych numerów.

Gdy wynik nie ma treści, przekaż modelowi jego snippet i zaznacz, że to tylko snippet. To pozwala uniknąć odpowiedzi opartych na stronie, której model nigdy nie widział. Strona Python zawiera krótką pętlę, która robi to wszystko w ramach budżetu tokenów.

Format odpowiedzi: często zadawane pytania

Czy treść zawsze jest w Markdown?

Domyślnie Markdown. Wyślij format: "text", aby otrzymać zwykły tekst bez znaczników, na przykład gdy tylko liczysz słowa lub klasyfikujesz strony. Nazwa pola pozostaje content.

Dlaczego w niektórych wynikach brakuje published_at?

Wiele stron nie podaje daty, a niektóre wyniki wyszukiwania też jej nie pokazują. W takim przypadku pole jest pomijane, więc sprawdź jego obecność przed użyciem.

Czy nowe pola mogą pojawić się później?

Tak. W wersji 1 pola mogą być dodawane, ale nigdy nie są zmieniane nazwy ani usuwane. Napisz parser tak, aby ignorował pola, których nie zna.

Czy treść jest przechowywana po Waszej stronie?

Nie. Nie trenujemy żadnego modelu na Twoich zapytaniach ani na tym, co zwraca API, i nie dodajemy własnej reguły przeciwko przechowywaniu wyników; nadal obowiązują prawa witryn, których strony czytasz. Nasz log żądań przechowuje tylko krótki ślad każdego wywołania, opisany na stronie prywatności.

Od 1,20 USD/1K wyszukiwań · bez KYC

Pobierz klucz API