DeepSeek convirtió las funciones de su App en parámetros de API el 13 de noviembre de 2026. La búsqueda integrada la controla el modelo y se factura por consulta con resultados; Search/Fetch independiente lo controla tu código y se cobra por solicitud completada; y la subida de archivos pasa por una Files API separada mediante file_id.
Una llamada con thinking activado puede encadenar unas 20 llamadas a herramientas, facturadas como búsquedas y fetches. En esta guía repasamos cómo activarlo, los límites, el cálculo por tarea y qué opción conviene elegir.
Qué habilitó DeepSeek App API el 13 de noviembre
El anuncio de DeepSeek, The full DeepSeek App experience, now via API, lleva la búsqueda web, la entrada de archivos y la lectura de URL a la API para el modelo deepseek-flash (DeepSeek-V4.1-Flash).
Según la guía para crear un chatbot, hay tres interfaces para acceder al mismo conjunto de funciones: Messages API, Responses API y Chat Completions API. Las llamadas a herramientas y el ensamblado del contexto se ejecutan en el servidor; el cliente se limita a renderizar los bloques estructurados y devolverlos sin cambios. Un demo de navegador de código abierto muestra cómo conectar las piezas, aunque está marcado únicamente como demostración.
Activa la búsqueda web y la lectura de URL
Declara estas dos herramientas en el array tools de la solicitud, usando deepseek-flash, tal y como indica la guía de Web Tools:
"tools": [{"type": "deepseek_web_search"}, {"type": "deepseek_read_url"}]
Con thinking desactivado, deepseek_web_search funciona como la búsqueda del chat: el modelo decide si necesita buscar, una llamada puede incluir varias consultas y la respuesta llega con citas. Al activar thinking, la misma herramienta se convierte en una búsqueda de razonamiento profundo: combina open_page y find_in_page con la búsqueda a lo largo de los pasos de razonamiento, hasta unas 20 llamadas a herramientas antes de responder.
La misma guía de Web Tools establece cuatro límites importantes:
- Solo cuentan las URL incluidas en el último mensaje del usuario, con un máximo de las 10 primeras URL distintas. El modelo decide cuáles leer.
- No puedes obligar a usar una herramienta mediante
tool_choice: indicar una concreta devuelve HTTP 400 y"none"también desactiva la lectura de URL. - Cuando están activadas las herramientas web, la seguridad alta o la generación de títulos,
temperature,top_py varios campos de control de herramientas se ignoran silenciosamente. - Una respuesta que haya utilizado herramientas web no se puede continuar; debes reenviar la solicitud.
"A $0.75 por cada 1000 solicitudes, quiero saber cuántas llamadas hace un agente en segundo plano. ¿Alguien ha calculado cuánto cuesta una tarea de investigación típica?" — u/Glum-Guitar-5083 en r/DeepSeek
El sistema de cobro cambia según la ruta. La búsqueda web integrada factura cada consulta que devuelve resultados —tres consultas en una misma llamada cuentan como tres— y el fetch integrado factura cada página recuperada, incluso si después una revisión de seguridad la sustituye por url_not_allowed o unavailable. Los enlaces que no se pueden recuperar no se cobran. En Search/Fetch independiente solo se factura cuando hay un HTTP 200 con resultados no vacíos o contenido devuelto. Las búsquedas fallidas o vacías no se cobran en ninguna de las dos rutas.
Sube archivos sin crear tu propio parser
La Files API permite subir un archivo una vez y referenciarlo después mediante file_id. El flujo mínimo es este:
curl https://api.deepseek.com/files \
-H "Authorization: Bearer $DEEPSEEK_API_KEY" \
-F purpose="rich_layout_recognition" \
-F file="@report.pdf"
# -> {"id": "file-api-xxxxxxxxxxxxxxxx", ...}
# then reference it in chat (Chat Completions shape):
# {"model": "deepseek-flash", "messages": [{"role": "user",
# "content": [{"type": "text", "text": "Compare this with today's numbers"},
# {"type": "file", "file_id": "file-api-xxxxxxxxxxxxxxxx"}]}]}
purpose determina el procesamiento y, en el caso de documentos, debe enviarse antes del campo file. user_data admite imágenes (JPEG, PNG, GIF y WebP), texto plano, hojas de cálculo y libros electrónicos; text_recognition extrae texto de PDF, Word y PowerPoint, además de imágenes; rich_layout_recognition devuelve texto y figuras de tablas y columnas. Subir un PDF como user_data devuelve HTTP 400, y los documentos procesados no se pueden reutilizar como imágenes ni descargar posteriormente.
| Categoría | Límite |
|---|---|
Imagen mediante file_id | 64 MiB (frente a 32 MiB en Base64 inline) |
| PDF / Word / PowerPoint | 100 MiB, 120 s para analizar durante la subida |
| Texto / hoja de cálculo / libro electrónico | 32 MiB, ventana de subida de 10 min |
| Cuota de la cuenta | 25 GiB, 10.000 archivos; caducidad de 1 h a 30 días o permanente |
Los archivos pertenecen a la cuenta, no a la clave, y el mismo ID funciona en las familias compatibles con OpenAI y con Anthropic. En esta última hace falta la cabecera anthropic-beta: files-api-2025-04-14. El análisis se ejecuta durante la subida, así que file_id solo se devuelve cuando la operación termina correctamente.
Herramientas integradas frente a Search y Fetch independientes
Usa las herramientas integradas cuando quieras que el modelo decida si debe buscar o leer dentro de una conversación. Recurre a las API independientes de la guía de Search & Fetch cuando la decisión corresponda a tu código: POST https://api.deepseek.com/v1/tools/search sirve para descubrir resultados ordenados —hasta 50, con rerank_score de 0 a 3, donde 1.5 o más indica alta calidad, y authority de 0 a 4—, mientras que POST https://api.deepseek.com/v1/tools/fetch convierte una URL en Markdown. La búsqueda independiente todavía no admite búsqueda de imágenes; las herramientas web sí.
| Ruta | Control | Unidad de cobro | Ideal para |
|---|---|---|---|
Integradas: deepseek_web_search / deepseek_read_url | Decide el modelo, en el servidor | Por consulta con resultados / por página recuperada | Chat con citas e investigación profunda |
| Search + Fetch independientes | Decide tu código | $0.75 por cada 1.000 solicitudes completadas, en cada caso | Agentes y pipelines RAG |
Los límites de velocidad se aplican a nivel de cuenta y son independientes: 100 QPS para Search y 25 QPS para Fetch, además de un límite de Fetch por dominio. Al superar la cuota recibirás HTTP 429. Reintenta los errores 408, 429 y 5xx; para el resto de errores 4xx, corrige la solicitud. Search independiente admite operadores como site:, -site:, "exact phrase", lang: y after:/before:.
Cuánto cuesta en la práctica
Las herramientas se cobran aparte de los tokens: Search y Fetch cuestan $0.75 por cada 1.000 solicitudes completadas; OCR, ASR y TTS tienen precios independientes y promociones con duración limitada, detalladas en el anuncio. Cambiar count modifica el volumen de resultados, pero no el precio.
Las comparativas de precios de la comunidad sitúan la búsqueda de DeepSeek cerca de $0.75 por cada 1.000 solicitudes, frente a unos $10 por cada 1.000 en la búsqueda de OpenAI y Claude, según han señalado distintos desarrolladores (@berryxia): una diferencia aproximada de 13 veces solo en las herramientas.
Una respuesta con una sola consulta cuesta menos de una décima de centavo en herramientas. Una ejecución de razonamiento profundo con 8 consultas y 6 aperturas de página factura unas 8 búsquedas más 6 fetches, todavía por debajo de dos centavos antes de contar los tokens. El riesgo está en el volumen: un agente que repita decenas de búsquedas multiplica rápidamente las unidades de $0.75. Presupuesta según las llamadas completadas, limita la profundidad de la búsqueda y registra tool_search frente a tool_fetch en el objeto de uso final (web_search_requests es solo informativo y no representa el número facturado).
Checklist de puesta en producción: citas, seguridad y demo
Las citas llegan como bloques web_search_result_location con la URL, el título y el texto citado, según la guía de Web Tools. En streaming aparecen como eventos citations_delta, con un máximo de una URL por bloque de texto, y se ignoran si las devuelves en solicitudes posteriores. Conserva los campos signature y los bloques de herramientas exactamente como llegan entre turnos: las páginas leídas se restauran a partir de la firma, y una firma no válida o ausente no impide completar la solicitud, pero sí elimina la página. En el ejemplo de trazas de la guía del chatbot, el contexto crece de 40 tokens de entrada a 9.078 después de usar herramientas, con 4.096 servidos desde caché; planifica, por tanto, el contexto teniendo en cuenta que el historial aumenta con las búsquedas.
En aplicaciones públicas, DeepSeek exige la comprobación de seguridad y deja en manos del desarrollador la moderación, el registro del modelo y el etiquetado del contenido generado por IA. Considera la revisión integrada como un primer filtro, gestiona de forma explícita los motivos de parada refusal y prepárate para recibir url_not_allowed cuando una página no supere la revisión. Esos fetches bloqueados se cobran igualmente. El demo del chat muestra la integración, pero mantiene todo en el navegador; antes de llevarlo a producción, crea tu propio backend.
Preguntas frecuentes
¿Puedo obligar al modelo a buscar en cada solicitud?
No. El modelo decide cuándo activar las herramientas y especificar una herramienta web en tool_choice devuelve 400.
¿Qué modelo y endpoints admiten búsqueda web y subida de archivos?
deepseek-flash en Messages, Responses y Chat Completions. Las referencias a archivos mediante file_id funcionan tanto en las familias compatibles con OpenAI como en las compatibles con Anthropic.
¿Se pueden combinar los archivos subidos con la búsqueda web?
Sí. Es el patrón documentado para el chatbot: contexto de archivo combinado con búsqueda en el servidor y citas.
¿Cuántas búsquedas suele activar una tarea de agente?
Una llamada con unas pocas consultas para respuestas sencillas, o hasta unas 20 llamadas a herramientas en tareas de investigación con thinking activado. Mide tool_search y tool_fetch por tarea: las herramientas integradas cobran por consulta o página, y las independientes por solicitud completada; en ambos casos, $0.75 por cada 1.000.
Empieza con una solicitud de búsqueda integrada y una subida de archivo en el demo. Después, revisa los contadores tool_search y tool_fetch del objeto de uso final y decide si el coste de las herramientas por tarea compensa frente a mantener tu propia capa de Tavily o SearXNG.