DeepSeek Search API: цены и пример поиска с Fetch на Python
Разбираем пример DeepSeek Search API на Python, различия Search и Fetch, оплату за вызов, бесплатный период и обработку запросов по официальным документам.
Читать в MarkdownДокументация проверена 20 октября 2026 года. Пример ниже проверен локально на тестовых данных; он не запускался с обращением к рабочим платным эндпоинтам.
DeepSeek Search API даёт приложению доступ к результатам поиска в интернете. Дополняющий его Fetch API получает отдельную страницу в формате Markdown. DeepSeek открыла оба интерфейса 17 октября 2026 года с отдельной оплатой за каждый вызов. По опубликованным тарифам в долларах США каждый из них стоит $0.75 за 1 000 запросов, подлежащих оплате. Для работы используются ключ API DeepSeek и официальный адрес api.deepseek.com. Источники: объявление о выпуске, цены.
В этом руководстве показан один поисковый запрос с последующей необязательной загрузкой страницы. Примеры используют собственный сервис DeepSeek; они не описывают эндпоинты Search или Fetch, предлагаемые SeedRouter.
Чем отличаются DeepSeek Search API и Fetch API
Search находит подходящие страницы. Fetch читает выбранную страницу.
| Операция | Официальный эндпоинт | Полезные данные в ответе |
|---|---|---|
| Search | POST https://api.deepseek.com/v1/tools/search | Массив results с URL страниц и полями, описывающими их содержание. |
| Fetch | POST https://api.deepseek.com/v1/tools/fetch | Заголовок страницы и её содержимое в Markdown. |
Оба интерфейса принимают JSON и используют аутентификацию Bearer. Отдельный поисковый запрос содержит query, а запрос на получение страницы — url. Это самостоятельные запросы, а не настройка, автоматически добавляющая доступ в интернет к каждому вызову генерации ответа в чате. Оба интерфейса описаны в официальном руководстве Search & Fetch.
Search также принимает need_content. При значении true результаты поиска могут содержать текст страниц. Прежде чем отправлять ещё один запрос, стоит проверить полученное содержимое: если нужная информация уже есть, отдельный вызов Fetch может не понадобиться.
Перед запуском примера на Python
Понадобятся Python 3, исходящий доступ по HTTPS и ключ API DeepSeek с соответствующими правами доступа у аккаунта. Ключ нужно поместить в переменную окружения в том терминале, из которого запускается скрипт:
export DEEPSEEK_API_KEY="your-deepseek-api-key"Пример использует стандартную библиотеку Python, поэтому установка пакетов не требуется. Он выполняет один запрос Search. Если результат есть, программа выводит заголовок и URL первой найденной страницы, затем получает её содержимое. Запуск может привести к расходам; ключ никогда не выводится.
Пример на Python: поиск, выбор результата и получение содержимого
Следующий код нужно сохранить как deepseek_search.py. Перед запуском следует изменить QUERY в соответствии с нужной информацией.
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()Команда запуска:
python3 deepseek_search.pyЭто небольшой пример, поэтому в нём выбирается первый результат. В реальном приложении следует выбирать страницу, которая соответствует вопросу, проверять её домен и контекст публикации и сохранять URL вместе с извлечённым текстом. Даже первый результат поиска должен быть релевантен ответу, который предстоит подготовить.
Формат запросов соответствует справочнику Search и справочнику Fetch DeepSeek. Локальная проверка синтаксиса и тестовых данных позволяет проверить формирование запросов и ветвления программы. Она не подтверждает фактический доступ аккаунта, скорость ответов или качество извлечённой информации.
Цены DeepSeek Search API: за что взимается плата?
Опубликованная цена составляет $0.75 за 1 000 успешных запросов Search, подлежащих оплате, и столько же за Fetch. За поиск без результатов плата не взимается; Fetch оплачивается при успешном получении содержимого. Число результатов, запрошенное через count, не меняет цену одного поиска. Условия оплаты приведены в актуальной таблице цен.
Например, 1 000 платных поисковых запросов с последующими 1 000 платными запросами на получение страниц обошлись бы в $1.50 за поиск и извлечение содержимого. Это расчёт по указанным тарифам, а не фактический счёт или обещание определённых результатов для конкретного запроса. Токены модели, которая затем будет составлять краткое изложение страниц, оплачиваются отдельно.
Временный бесплатный период действует в более узких пределах. По заявлению DeepSeek, вызовы Search/Fetch её API-пользователями через серверные инструменты в DeepSeek Harness, Claude Code и Codex временно не тарифицируются. Оплата такого использования начинается 31 октября 2026 года в 16:00 UTC, то есть 1 ноября в 00:00 по пекинскому времени. Объявление не делает отдельные Python-запросы из этого руководства бесплатными для всех. Официальное объявление.
Какие параметры и ошибки нужно учесть
Задокументированная длина поискового запроса — 1–128 символов Unicode. Значение count по умолчанию равно 10; допустимый диапазон — 1–50. Пример на Python намеренно запрашивает пять результатов и оставляет получение текста страницы для последующего запроса Fetch. Прежде чем добавлять другие поля, следует обратиться к справочнику Search.
Пустой массив результатов означает успешный поиск без совпадений. В примере на этом выполнение заканчивается. Ошибка HTTP обрабатывается отдельно, а тайм-аут прерывает выполнение, не создавая автоматически ещё один запрос. В более крупном приложении следует явно задавать предел повторных попыток и учитывать дополнительные расходы.
Полученный Markdown — материал из внешнего источника. Следует сохранять URL источника, проверять, отвечает ли содержимое на вопрос, и воспринимать встроенные в страницу инструкции как её содержимое, а не команды приложению. При передаче текста языковой модели это различие нужно обозначить в промпте, а в итоговом ответе сохранить ссылки на источники.
Часто задаваемые вопросы
Может ли API DeepSeek искать в интернете?
Да. Отдельные интерфейсы Search и Fetch задокументированы. Вызов обычного эндпоинта чата и вызов этих эндпоинтов поиска и извлечения — разные операции; для своего рабочего процесса следует использовать соответствующую спецификацию.
Есть ли у DeepSeek Search API бесплатный тариф?
В цитируемом объявлении говорится о временно бесплатном использовании серверных инструментов в определённых интеграциях с агентами для программирования. Оно не устанавливает общий бесплатный тариф для всех отдельных запросов Search или Fetch. Перед пакетным запуском следует проверить актуальную страницу оплаты.
Нужен ли Fetch после каждого поиска?
Нет. Поиск может дать достаточно информации, особенно если с need_content: true возвращается пригодное для использования содержимое. Fetch полезен, когда нужно отдельно получить выбранную страницу.
Начать с одной последовательности поиска и получения страницы
DeepSeek Search API находит источники, а Fetch получает выбранную страницу. Сначала стоит выполнить один запрос, проверить результат и содержимое, затем решить, нужны ли приложению дополнительные страницы или краткое изложение от модели. Отдельное обновление модели, объявленное в тот же день, описано в статье об обновлении от 17 октября: бенчмарки и изменения.



