DeepSeek Search API: ceny i przykład Search–Fetch w Pythonie
Poznaj przykład DeepSeek Search API w Pythonie, różnice między Search a Fetch, opłaty za wywołanie, ograniczenia okresu bezpłatnego i obsługę żądań.
Czytaj jako MarkdownDokumentację sprawdzono 20 października 2026 r. Poniższy przykład sprawdzono lokalnie na przygotowanych danych testowych; nie uruchamiano go na płatnych, działających endpointach.
DeepSeek Search API daje aplikacji dostęp do wyników wyszukiwania w sieci. Towarzyszące mu Fetch API pobiera pojedynczą stronę w formacie Markdown. DeepSeek udostępnił oba interfejsy 17 października 2026 r., z oddzielnymi opłatami za wywołanie. Według opublikowanego cennika w USD każdy z nich kosztuje 0,75 USD za 1000 płatnych żądań. Korzystają z klucza API DeepSeek i oficjalnego adresu api.deepseek.com. Źródła: ogłoszenie udostępnienia, cennik.
Ten poradnik pokazuje jedno wyszukiwanie, po którym można opcjonalnie pobrać stronę. Przykłady korzystają z własnej usługi DeepSeek; nie opisują endpointów Search ani Fetch oferowanych przez SeedRouter.
Czym różnią się DeepSeek Search API i Fetch API
Search znajduje potencjalnie przydatne strony. Fetch odczytuje stronę, którą wybierzesz.
| Operacja | Oficjalny endpoint | Przydatne dane wyjściowe |
|---|---|---|
| Search | POST https://api.deepseek.com/v1/tools/search | Tablica results z adresami URL stron i polami opisowymi. |
| Fetch | POST https://api.deepseek.com/v1/tools/fetch | Tytuł strony i jej treść w formacie Markdown. |
Oba interfejsy przyjmują JSON i stosują uwierzytelnianie Bearer. Samodzielne żądanie wyszukiwania zawiera query; żądanie pobrania strony zawiera url. Są to odrębne żądania, a nie ustawienie automatycznie dodające dostęp do sieci do każdej odpowiedzi czatu. Oficjalny przewodnik Search & Fetch dokumentuje oba interfejsy.
Search przyjmuje również need_content. Gdy parametr ma wartość true, wyniki wyszukiwania mogą zawierać treść stron. Sprawdź zwróconą treść przed kolejnym żądaniem: jeśli zawiera już to, czego potrzebujesz, osobne wywołanie Fetch może być zbędne.
Zanim uruchomisz przykład w Pythonie
Potrzebujesz Pythona 3, możliwości nawiązywania połączeń wychodzących HTTPS oraz klucza API DeepSeek z odpowiednim dostępem na koncie. Zapisz klucz w zmiennej środowiskowej w terminalu, z którego uruchomisz skrypt:
export DEEPSEEK_API_KEY="your-deepseek-api-key"Przykład korzysta z biblioteki standardowej Pythona, więc nie wymaga instalowania pakietów. Wysyła jedno żądanie Search. Jeśli pojawi się wynik, wypisuje tytuł i adres URL pierwszego wyniku, a następnie pobiera tę stronę. Uruchomienie może wiązać się z opłatami; klucz nigdy nie jest wypisywany.
Przykład w Pythonie: wyszukaj, wybierz wynik i pobierz jego treść
Zapisz poniższy kod jako deepseek_search.py. Przed uruchomieniem zmień QUERY, aby odpowiadało informacjom, których potrzebujesz.
import json
import os
import urllib.error
import urllib.request
BASE_URL = "https://api.deepseek.com"
QUERY = "Python documentation pathlib"
def call(path, payload):
request = urllib.request.Request(
BASE_URL + path,
data=json.dumps(payload).encode("utf-8"),
headers={
"Authorization": "Bearer " + os.environ["DEEPSEEK_API_KEY"],
"Content-Type": "application/json",
},
method="POST",
)
try:
with urllib.request.urlopen(request, timeout=30) as response:
return json.load(response)
except urllib.error.HTTPError as error:
raise RuntimeError(f"DeepSeek returned HTTP {error.code}") from None
def main():
search = call(
"/v1/tools/search",
{"query": QUERY, "count": 5, "need_content": False},
)
results = search.get("results", [])
if not results:
print("No search results; no Fetch request was made.")
return
selected = results[0]
print(selected.get("title", "Untitled result"))
print(selected["url"])
page = call("/v1/tools/fetch", {"url": selected["url"]})
content = page.get("content", "")
if not content:
print("The selected page returned no content.")
return
print(page.get("title", ""))
print(content)
if __name__ == "__main__":
main()Uruchom go poleceniem:
python3 deepseek_search.pyTo prosty przykład, dlatego wybiera pierwszy wynik. W rzeczywistej aplikacji wybierz stronę odpowiadającą na pytanie, sprawdź jej domenę i kontekst publikacji oraz zachowaj adres URL wraz z wyodrębnionym tekstem. Nawet najwyżej sklasyfikowany wynik wyszukiwania musi być istotny dla odpowiedzi, którą przygotowujesz.
Struktura żądań jest zgodna z dokumentacją Search i Fetch DeepSeek. Lokalna kontrola składni i testy na przygotowanych danych pozwalają zweryfikować budowanie żądań oraz rozgałęzienia programu. Nie potwierdzają dostępu konta do działającej usługi, szybkości odpowiedzi ani jakości pobierania informacji.
Cennik DeepSeek Search API: za co naliczane są opłaty?
Opublikowana cena w USD wynosi 0,75 USD za 1000 udanych żądań podlegających opłacie w Search i tyle samo w Fetch. Wyszukiwanie bez wyników nie jest płatne; opłata za Fetch jest naliczana po skutecznym pobraniu treści. Liczba wyników żądanych za pomocą count nie zmienia ceny pojedynczego wyszukiwania. Warunki naliczania opłat znajdziesz w aktualnym cenniku.
Dla przykładu: 1000 płatnych wyszukiwań, po których nastąpi 1000 płatnych pobrań stron, kosztowałoby 1,50 USD za pobieranie informacji. To obliczenie na podstawie podanych stawek, a nie zmierzony rachunek ani obietnica tego, co zwróci konkretne zapytanie. Tokeny modelu użyte później do podsumowania tych stron stanowią osobny koszt.
Tymczasowy okres bezpłatny ma węższy zakres. DeepSeek informuje, że wywołania Search/Fetch wykonywane przez użytkowników jego API za pośrednictwem narzędzi po stronie serwera w DeepSeek Harness, Claude Code i Codex są tymczasowo nieodpłatne. Naliczanie opłat za takie użycie rozpoczyna się 31 października 2026 r. o 16:00 UTC, czyli 1 listopada o 00:00 w Pekinie. Z ogłoszenia nie wynika, że samodzielne żądania z Pythona przedstawione w tym poradniku są bezpłatne dla wszystkich. Oficjalne ogłoszenie.
Parametry i przypadki błędów, które warto uwzględnić
Udokumentowana długość zapytania wynosi 1–128 znaków Unicode. Domyślna wartość count to 10, a dopuszczalny zakres wynosi 1–50. Przykład w Pythonie celowo prosi o pięć wyników i pozostawia pobranie treści strony kolejnemu żądaniu Fetch. Zanim rozszerzysz żądanie o inne pola, przeczytaj dokumentację Search.
Pusta tablica wyników oznacza udane wyszukiwanie bez pasujących stron. Przykład kończy wtedy działanie. Błąd HTTP jest obsługiwany oddzielnie, a przekroczenie limitu czasu przerywa wykonanie zamiast automatycznie tworzyć kolejne żądanie. W większej aplikacji jawnie określ limit ponowień i dodatkowe wydatki.
Pobrany Markdown to zewnętrzny materiał źródłowy. Zachowaj źródłowy adres URL, sprawdź, czy treść odpowiada na pytanie, a instrukcje umieszczone na pobranej stronie traktuj jako zawartość tej strony, nie jako polecenia dla twojej aplikacji. Jeśli przekazujesz treść modelowi językowemu, zachowaj to rozróżnienie w prompcie i odwołania do źródeł w wynikowej odpowiedzi.
Najczęściej zadawane pytania
Czy API DeepSeek może wyszukiwać w sieci?
Tak. Samodzielne interfejsy Search i Fetch są udokumentowane. Wywołanie zwykłego endpointu czatu i wywołanie tych endpointów pobierania informacji to różne operacje; stosuj specyfikację właściwą dla procesu, który budujesz.
Czy DeepSeek Search API ma bezpłatny plan?
Przytoczone ogłoszenie opisuje tymczasowo bezpłatne użycie narzędzi po stronie serwera w konkretnych integracjach agentów programistycznych. Nie ustanawia ogólnego bezpłatnego planu dla każdego samodzielnego żądania Search lub Fetch. Przed uruchomieniem serii żądań sprawdź aktualną stronę z zasadami naliczania opłat.
Czy potrzebuję Fetch po każdym wyszukiwaniu?
Nie. Wyszukiwanie może dostarczyć wystarczających informacji, zwłaszcza gdy użyteczna treść jest zwracana przy need_content: true. Fetch przydaje się wtedy, gdy potrzebujesz osobno pobrać wybraną stronę.
Zacznij od jednej ścieżki pobierania informacji
DeepSeek Search API znajduje źródła, a Fetch pobiera wybraną stronę. Zacznij od jednego zapytania, sprawdź wynik i treść, a następnie zdecyduj, czy twoja aplikacja potrzebuje kolejnych stron lub podsumowania wygenerowanego przez model. O osobnej aktualizacji modelu ogłoszonej tego samego dnia przeczytasz w artykule aktualizacja wag z 17 października: benchmarki i zmiany.



