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

Extract endpoint: odczytaj URL-e, które Twój agent już ma

Czasem agent ma już linki: użytkownik je wkleił, poprzednie wyszukiwanie je wymieniło albo dokument je cytuje. /extract odczytuje te strony i zwraca ich główną treść, z tym samym readerem i tymi samymi zasadami co /search.

Ostatnia aktualizacja: · 5 min czytania

Szybka odpowiedź

Jak odczytać strony internetowe, których URL-e już mam?

Wyślij do POST https://llmwebsearch.com/api/v1/extract maksymalnie 20 URL-i. LLMWebSearch odczytuje każdą publiczną stronę i zwraca jej główną treść jako Markdown lub zwykły tekst, ze statusem dla każdego URL-a. Rozliczenie to 1 kredyt za każdą rozpoczętą grupę 3 odczytanych stron, od 1,20 USD/1K wyszukiwań za kredyt wyszukiwania na październik 2026. robots.txt jest respektowany. Bez KYC; płatność kryptowalutą.

/extract at a glance

MetodaPOST z ciałem JSON
URLhttps://llmwebsearch.com/api/v1/extract
Dane wejścioweurls: od 1 do 20 adresów http lub https
WyjścieGłówna treść dla każdego URL-a, w markdown (domyślnie) lub text
RozliczanieOdczyt stron, których adresy URL już masz, kosztuje 1 kredyt za każdą rozpoczętą grupę 3 stron zwróconych z treścią, do 20 adresów URL na wywołanie; adresy URL odrzucone lub nieudane nie są liczone
robots.txtNasz czytnik respektuje robots.txt: przedstawia się jako LLMWebSearch, przestrzega reguł, które witryna zapisuje dla niego lub dla wszystkich robotów, i pomija treść każdej strony, której nie wolno mu czytać
Czytnik stronLLMWebSearch/1.0 (+https://llmwebsearch.com/bot/)

Odczytaj listę URL-i

POST/api/v1/extract

Pobiera równolegle każdy URL i zwraca jego główną treść, w kolejności, w jakiej je wysłałeś. Każdy element ma własny content_status, więc jedna odrzucona strona nie powoduje błędu całego wywołania. Przykład odczytuje trzy strony; tytuły i wartości są ilustracyjne.

Uwierzytelnianie: klucz API w nagłówku Authorization: Bearer API_KEY.

Treść zapytania

PoleTypWymaganeOpis
urlsstring[]TakOd 1 do 20 adresów http lub https. Adresy prywatne, lokalne i z metadanych chmury są odrzucane.
formatstringNiemarkdown (domyślnie) lub text.
max_charsintegerNieLimit długości treści każdej strony, od 500 do 50 000 znaków. Domyślnie 6000.
Przykład: three pages, longer content
{
  "urls": [
    "https://docs.example.com/security/key-rotation",
    "https://blog.example.org/key-rotation-checklist",
    "https://example.com/changelog"
  ],
  "max_chars": 20000
}

Odpowiedź 200

{
  "credits_used": 1,
  "results": [
    {
      "url": "https://docs.example.com/security/key-rotation",
      "title": "Rotating API keys",
      "content_status": "ok",
      "content": "# Rotating API keys\n\n## Zero-downtime rotation\n\n1. Create a second key...",
      "word_count": 948
    },
    {
      "url": "https://blog.example.org/key-rotation-checklist",
      "content_status": "blocked_by_robots"
    },
    {
      "url": "https://example.com/changelog",
      "title": "Changelog",
      "content_status": "ok",
      "content": "# Changelog\n\n## 2026-10-20\n\n- New export format...",
      "word_count": 2204
    }
  ]
}

Przykłady kodu

curl
curl -s "https://llmwebsearch.com/api/v1/extract" \
  -H "Authorization: Bearer $LLMWEBSEARCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"urls": ["https://docs.example.com/security/key-rotation", "https://example.com/changelog"], "max_chars": 20000}'
Python
import os
import requests

resp = requests.post(
    "https://llmwebsearch.com/api/v1/extract",
    headers={"Authorization": "Bearer " + os.environ["LLMWEBSEARCH_API_KEY"]},
    json={"urls": ["https://docs.example.com/security/key-rotation", "https://example.com/changelog"]},
    timeout=60,
)
for page in resp.json()["results"]:
    print(page["url"], page["content_status"], page.get("word_count", 0))
Node.js
const res = await fetch('https://llmwebsearch.com/api/v1/extract', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.LLMWEBSEARCH_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ urls: ['https://docs.example.com/security/key-rotation', 'https://example.com/changelog'] }),
});
for (const page of (await res.json()).results) console.log(page.url, page.content_status);

Kiedy użyć extract zamiast read w wyszukiwaniu?

Użyj extract, gdy URL-e nie pochodzą z wyszukiwania, które uruchamiasz. Użytkownik wkleja link, dokument cytuje trzy źródła albo pierwsze wyszukiwanie z read=0 pozwoliło modelowi wybrać, które strony zasługują na pełny odczyt.

Użyj read w /search, gdy po prostu chcesz odczytać najlepsze wyniki w tym samym wywołaniu. To jedno zapytanie zamiast dwóch, a do 3 stron jest objętych pojedynczym kredytem wyszukiwania.

Jak rozliczane są wywołania extract?

Jeden kredyt za każdą rozpoczętą grupę 3 odczytanych stron. Liczba uwzględnia strony, które wracają z treścią: URL odrzucony przez robots.txt lub przez stronę albo taki, który nie wczytał się, nie jest liczony.

Odczytane stronyKredyty
1 do 31
4 do 62
7 do 93
19 lub 207

Odpowiedź zawsze podaje sumę w credits_used. Wywołanie, w którym nie udało się odczytać żadnej strony, nic nie kosztuje.

Co mówi mi każdy element odpowiedzi?

Każdy element powtarza url, które wysłałeś, i podaje content_status. Z ok otrzymujesz także stronę title, jej główną content i jej word_count. W przeciwnym razie status podaje powód: blocked_by_robots, blocked_by_site_policy, target_refused z target_status strony, fetch_failed, fetch_timeout lub unsupported_content.

Elementy zachowują kolejność Twojej listy urls, więc możesz je dopasować zarówno po indeksie, jak i po URL. Strona formatu odpowiedzi opisuje każdy status.

Które URL-e są odrzucane przed jakimkolwiek pobraniem?

Adresy wskazujące na sieci prywatne, na lokalną maszynę lub na usługi metadanych w chmurze są odrzucane. Dzięki temu nikt nie może użyć naszego czytnika, aby dotrzeć do systemów wewnętrznych. Przekierowanie prowadzące do takiego adresu również jest odrzucane, a śledzimy maksymalnie 5 przekierowań.

Adres musi używać http lub https. Wywołanie, w którym urls jest puste, zawiera więcej niż 20 pozycji lub zawiera nieprawidłowy adres, zwraca 400 invalid_parameter, bez opłat.

Tak. To ten sam czytnik, który przedstawia się jako LLMWebSearch/1.0 (+https://llmwebsearch.com/bot/). Witryna, która ustawia Content-Signal: ai-input=no w swoim robots.txt, trzyma treść swoich stron poza treścią Twoich wyników. Gdy witryna odrzuca nasz czytnik, wynik wraca bez treści i ze statusem witryny: nigdy nie rozwiązujemy CAPTCHA, nie logujemy się na konta ani nie obchodzimy blokady czy paywalla.

Strony wymagające logowania lub ukryte za paywallem wracają bez treści. Wskaż agentowi inne źródło albo stronę, którą możesz odczytać we własnej sesji przeglądarki.

Endpoint extract: najczęstsze pytania

Jakie rodzaje plików potrafi odczytać?

Jest zbudowany do stron internetowych. Link do wideo, archiwum lub innego pliku bez czytelnego tekstu wraca jako unsupported_content, a ten URL nie jest wliczany do ceny.

Czy URL wysłany dwa razy jest odczytywany dwa razy?

Wyślij każdy URL raz. Jeśli lista może zawierać duplikaty, usuń je najpierw po swojej stronie, aby wyniki odpowiadały Twojej liście jeden do jednego.

Czy renderowanie JavaScript jest dodatkowo płatne?

Nie. Gdy strona potrzebuje przeglądarki, aby pokazać swój tekst, jest renderowana bez dodatkowych kosztów.

Czy extract może odczytać stronę, na której jestem zalogowany?

Nie. Czytnik nigdy nie loguje się do kont i nie wysyła Twoich cookies. Gdy witryna odrzuca nasz czytnik, wynik wraca bez treści i ze statusem witryny: nigdy nie rozwiązujemy CAPTCHA, nie logujemy się na konta ani nie obchodzimy blokady czy paywalla.

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

Pobierz klucz API