Search & Fetch API

  • Search API: Zoekt webpagina's op basis van een query en retourneert gestructureerde resultaten. Deze wordt aangedreven door de eigen zoekmachine van DeepSeek.
  • Fetch API: Haalt een enkele webpagina op en retourneert de inhoud als Markdown.

Beide zijn raw JSON API's en maken gebruik van dezelfde bearer-authenticatie als de DeepSeek API.

Basis URL: https://api.deepseek.com

APIEndpoint
SearchPOST https://api.deepseek.com/v1/tools/search
FetchPOST https://api.deepseek.com/v1/tools/fetch

Raadpleeg de Search API Reference en Fetch API Reference voor de volledige request- en response-schema's.

Authenticatie

Verstuur uw API-sleutel en het JSON-inhoudstype in de request-headers:

HeaderVerplichtWaarde
AuthorizationJaBearer <DeepSeek API Key>
Content-TypeJaapplication/json

Search API

Request

Voorbeeld via curl:

curl https://api.deepseek.com/v1/tools/search \
-H "Authorization: Bearer <DeepSeek API Key>" \
-H "Content-Type: application/json" \
-d '{
"query": "DeepSeek V4 release",
"count": 5,
"need_content": true
}'

Voorbeeld via Python:

import requests

response = requests.post(
    "https://api.deepseek.com/v1/tools/search",
    headers={
        "Authorization": "Bearer <DeepSeek API Key>",
    },
    json={
        "query": "DeepSeek V4 release",
        "count": 5,
        "need_content": True,
    },
)

response.raise_for_status()
for result in response.json()["results"]:
    print(result["title"], result["url"])
    print(result["summary"])

Request-velden:

VeldTypeVerplichtStandaardBeschrijving
querystringJa-De zoekopdracht. Moet tussen de 1 en 128 Unicode-tekens bevatten, mag niet uitsluitend uit spaties bestaan en ondersteunt de hieronder genoemde query-operatoren.
countintegerNee10Het aantal resultaten dat moet worden geretourneerd, tussen 1 en 50.
ori_questionstringNee-De oorspronkelijke vraag van de gebruiker die de zoekopdracht heeft getriggerd (1-128 tekens), om het begrip van de query te verbeteren. null wordt behandeld als niet verstrekt.
localizationstringNee""Een optioneel IP-adres om de zoekresultaten te lokaliseren.
need_contentbooleanNeefalseBepaalt of de pagina-inhoud in content wordt geretourneerd. Dit is altijd een lege string als deze waarde false is.

Onbekende velden in het request-body worden genegeerd.

Query-operatoren

De query wordt doorgestuurd met de zoeksyntax intact. De onderstaande voorbeelden combineren operatoren met een zoekterm; u kunt meerdere operatoren in één query combineren.

OperatorVoorbeeldBeschrijving
site:DeepSeek site:github.comBeperk resultaten tot de opgegeven site. Voor meerdere sites: scheid site: clausules met spaties en verbind ze met OR (bijv. DeepSeek site:github.com OR site:huggingface.co).
-site:DeepSeek -site:example.comSluit de opgegeven site uit. Scheid meerdere sites met spaties.
-DeepSeek -advertisementSluit pagina's uit die de term bevatten. Scheid meerdere termen met spaties.
-"..."DeepSeek -"release notes"Sluit pagina's uit die de exacte frase bevatten. Scheid meerdere frases met spaties.
"..."DeepSeek "exact phrase"Match een exacte frase. Scheid meerdere frases met spaties.
lang:DeepSeek lang:zh,enBeperk resultaten tot de opgegeven taalcodes, gescheiden door komma's (bijv. lang:zh,en).
after:DeepSeek after:2025 of DeepSeek after:2025-01-01Beperk resultaten tot pagina's gepubliceerd ná een bepaalde datum.
before:DeepSeek before:2026 of DeepSeek before:2026-06-01Beperk resultaten tot pagina's gepubliceerd vóór een bepaalde datum.

Voorbeeld:

{
"query": "DeepSeek site:github.com OR site:huggingface.co lang:en after:2025",
"count": 10
}

Response

Een succesvolle aanvraag retourneert HTTP 200 met een results array. Een normale zoekopdracht zonder matches retourneert een lege array.

Voorbeeld response:

{
"results": [
{
"rerank_score": 2.4,
"title": "DeepSeek V4 model released",
"url": "https://example.com/deepseek-v4",
"snippet": "DeepSeek V4 is now available, with tool calling and long-context support.",
"summary": "DeepSeek has released the V4 model. The release adds improved tool calling and long-context support for agent workflows.",
"content": "DeepSeek V4 is now generally available...",
"site_name": "Example News",
"site_icon": "https://example.com/favicon.ico",
"date": "2026-06-01T00:00:00+00:00",
"authority": 3
}
]
}

Velden in de results array:

VeldTypeBeschrijving
rerank_scorenumberEen relevantiescore van 0 tot 3 die signalen zoals relevantie, autoriteit en actualiteit combineert. Scores van 1,5 of hoger worden beschouwd als kwalitatief hoogwaardige resultaten.
titlestringDe titel van het resultaat.
urlstringDe URL van het resultaat.
snippetstringEen korte samenvatting gerelateerd aan de query (doorgaans 100 tot 200 tekens), bedoeld voor weergave in een UI.
summarystringEen uitgebreide samenvatting gerelateerd aan de query (doorgaans 600 tot 800 tekens), bedoeld om door een model gelezen te worden.
contentstringDe pagina-inhoud. Deze is leeg als need_content op false staat of wanneer de inhoud niet beschikbaar is.
site_namestring of nullDe naam van de site, of null indien niet beschikbaar.
site_iconstring of nullDe URL van het site-icoon, of null indien niet beschikbaar.
datestring of nullDe publicatietijd in UTC, geformatteerd als RFC 3339, of null indien onbekend.
authorityintegerDe autoriteitsklasse van de pagina, 0 tot 4 (-1 betekent onbekend). Waarden van 3 of hoger duiden op zeer gezaghebbende bronnen.

Fetch API

Request

Voorbeeld via curl:

curl https://api.deepseek.com/v1/tools/fetch \
-H "Authorization: Bearer <DeepSeek API Key>" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/article"
}'

Voorbeeld via Python:

import requests

response = requests.post(
    "https://api.deepseek.com/v1/tools/fetch",
    headers={
        "Authorization": "Bearer <DeepSeek API Key>",
    },
    json={"url": "https://example.com/article"},
)

response.raise_for_status()
page = response.json()
print(page["title"])
print(page["content"])

Request-velden:

VeldTypeVerplichtBeschrijving
urlstringJaDe URL van de pagina die opgehaald moet worden. Maximaal 8192 tekens, moet een HTTP- of HTTPS-URL met een host zijn en mag geen gebruikersnaam of wachtwoord bevatten.

Response

Voorbeeld response:

{
"title": "Example article",
"content": "# Example article\n\nArticle content."
}

Response-velden:

VeldTypeBeschrijving
titlestringDe titel van de pagina, leeg indien niet beschikbaar.
contentstringDe opgehaalde pagina-inhoud als Markdown-tekst.

Het ophalen van content is onderhevig aan de beschikbaarheid en toegangsregels van de doelsite.

Fouten

Fouten volgen het OpenAI-compatibele foutformaat. Het veld param is altijd null.

Voorbeeld:

{
"error": {
"message": "'count' must be between 1 and 50",
"type": "invalid_request_error",
"param": null,
"code": "invalid_request_error"
}
}

HTTP-statuscodes:

StatusBeschrijving
400De request-headers of het body zijn ongeldig, inclusief malformed JSON of een ongeldige veldwaarde.
401De API-sleutel ontbreekt of is ongeldig.
402Het account heeft onvoldoende saldo.
403Het Fetch-verzoek is afgewezen door het beveiligingsbeleid.
404Fetch kon geen bruikbare pagina-inhoud ophalen, bijvoorbeeld door een niet-beschikbare URL, een door sitebeleid geblokkeerde URL, een fout van de doelsite, een niet-ondersteund inhoudstype, of een pagina zonder extraheerbare Markdown-content.
408Het lezen van het request-body is getimed uit.
413Het request-body is te groot.
429De Search- of Fetch-QPS-limiet is overschreden.
500Er is een interne serverfout opgetreden.
504Een downstream-verzoek is getimed uit.

Search en Fetch zijn alleen-lezen. Bij HTTP 408, 429 of 5xx-fouten: wacht en probeer het opnieuw. Bij HTTP 402: vul uw account aan voordat u het opnieuw probeert. Probeer andere 4xx-fouten niet opnieuw zonder het verzoek te wijzigen.

Facturering

Search en Fetch worden gefactureerd per succesvol verzoek, niet per token of per aantal geretourneerde resultaten:

APIEenheidsprijs
Search$0,75 per 1.000 succesvolle verzoeken
Fetch$0,75 per 1.000 succesvolle verzoeken

Een verzoek is alleen belastbaar wanneer het HTTP 200 retourneert en een resultaat produceert (Search moet een niet-lege results array retourneren, en Fetch moet pagina-inhoud retourneren). Mislukte verzoeken, lege zoekresultaten en timeouts worden niet in rekening gebracht. De count beïnvloedt alleen hoeveel resultaten er worden geretourneerd en heeft geen invloed op de prijs per verzoek.

Let op: Wanneer u de DeepSeek API gebruikt via DeepSeek Harness, Claude Code of Codex, maken server-side tool calls al gebruik van de Search en Fetch API's. Deze aanvragen zijn momenteel gratis; facturering per verzoek gaat in op 1 november 2026 om 00:00 uur Beijing-tijd.

Rate Limits

Voor elk account zijn Search en Fetch onafhankelijk gelimiteerd; verkeer naar de één verbruikt niet het quotum van de ander:

APIQPS Limiet
Search5
Fetch5

De QPS-limieten (requests per second) worden berekend op accountniveau, ongeacht welke API-sleutel wordt gebruikt, en staan apart van de limieten voor model-concurrency. Verzoeken boven de account-QPS-limiet ontvangen HTTP 429. Naast de accountlimiet is Fetch ook onderhevig aan een QPS-limiet per domein; verzoeken boven die limiet ontvangen eveneens HTTP 429.