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
| Metoda | POST z ciałem JSON |
|---|---|
| URL | https://llmwebsearch.com/api/v1/extract |
| Dane wejściowe | urls: od 1 do 20 adresów http lub https |
| Wyjście | Główna treść dla każdego URL-a, w markdown (domyślnie) lub text |
| Rozliczanie | Odczyt 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.txt | Nasz 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 stron | LLMWebSearch/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
| Pole | Typ | Wymagane | Opis |
|---|---|---|---|
urls | string[] | Tak | Od 1 do 20 adresów http lub https. Adresy prywatne, lokalne i z metadanych chmury są odrzucane. |
format | string | Nie | markdown (domyślnie) lub text. |
max_chars | integer | Nie | Limit długości treści każdej strony, od 500 do 50 000 znaków. Domyślnie 6000. |
{
"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 -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}'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))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 strony | Kredyty |
|---|---|
| 1 do 3 | 1 |
| 4 do 6 | 2 |
| 7 do 9 | 3 |
| 19 lub 20 | 7 |
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.
Czy extract stosuje te same zasady co search?
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.