Web search: deepseek-search
curl --request POST \
--url https://api.apiyi.com/v1/tools/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"query": "DeepSeek V4 release"
}
'import requests
url = "https://api.apiyi.com/v1/tools/search"
payload = { "query": "DeepSeek V4 release" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({query: 'DeepSeek V4 release'})
};
fetch('https://api.apiyi.com/v1/tools/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.apiyi.com/v1/tools/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'query' => 'DeepSeek V4 release'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.apiyi.com/v1/tools/search"
payload := strings.NewReader("{\n \"query\": \"DeepSeek V4 release\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.apiyi.com/v1/tools/search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"DeepSeek V4 release\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.apiyi.com/v1/tools/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"query\": \"DeepSeek V4 release\"\n}"
response = http.request(request)
puts response.read_body{
"results": [
{
"title": "DeepSeek V4 released",
"url": "https://example.com/news/deepseek-v4",
"snippet": "A short snippet of about 100–200 characters...",
"summary": "A long summary of about 600–800 characters...",
"content": "",
"rerank_score": 2.1,
"authority": 3,
"date": "2026-10-20T08:00:00Z",
"site_name": "Example News",
"site_icon": "https://example.com/favicon.ico"
}
]
}DeepSeek Search & Fetch
DeepSeek 웹 검색 API 레퍼런스
DeepSeek Search API 레퍼런스 및 플레이그라운드: /v1/tools/search 파라미터, 검색 연산자, 응답 구조 및 오류 코드.
POST
/
v1
/
tools
/
search
Web search: deepseek-search
curl --request POST \
--url https://api.apiyi.com/v1/tools/search \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"query": "DeepSeek V4 release"
}
'import requests
url = "https://api.apiyi.com/v1/tools/search"
payload = { "query": "DeepSeek V4 release" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({query: 'DeepSeek V4 release'})
};
fetch('https://api.apiyi.com/v1/tools/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.apiyi.com/v1/tools/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'query' => 'DeepSeek V4 release'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.apiyi.com/v1/tools/search"
payload := strings.NewReader("{\n \"query\": \"DeepSeek V4 release\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.apiyi.com/v1/tools/search")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"DeepSeek V4 release\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.apiyi.com/v1/tools/search")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"query\": \"DeepSeek V4 release\"\n}"
response = http.request(request)
puts response.read_body{
"results": [
{
"title": "DeepSeek V4 released",
"url": "https://example.com/news/deepseek-v4",
"snippet": "A short snippet of about 100–200 characters...",
"summary": "A long summary of about 600–800 characters...",
"content": "",
"rerank_score": 2.1,
"authority": 3,
"date": "2026-10-20T08:00:00Z",
"site_name": "Example News",
"site_icon": "https://example.com/favicon.ico"
}
]
}오른쪽 Playground에서 사용해 보세요: Authorization에
Bearer sk-your-api-key(default 또는 svip 그룹의 키)를 입력합니다.
기본 예제가 미리 입력되어 있으므로 전송을 클릭하여 결과를 확인할 수 있습니다. 호출이 성공할 때마다 1회 과금됩니다.
localization은 사용자의 IP 주소(예: 8.8.8.8)를 사용하며, en-US와 같은 로케일 코드는 400을 반환합니다.가격 정보, 테스트 데이터 및 필수 안내 사항은 개요에서 확인할 수 있습니다.
파라미터 참조
| 파라미터 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
query | string | ✓ | 1~128자, 공백으로만 구성될 수 없습니다. site:, -site:, "...", lang:, after:, before: 및 기타 연산자를 지원합니다 |
count | int | 1~50, 기본값 10. 가격에 영향을 주지 않습니다 | |
need_content | bool | 기본값 false, true인 경우 각 결과에 페이지 본문이 포함됩니다 | |
ori_question | string | 사용자의 원래 질문, 1~128자 | |
localization | string | 사용자의 IP 주소(로케일 코드가 아님), 지역 맞춤 순위 지정에 사용됩니다 |
model 필드가 필요하지 않으며, 알 수 없는 필드는 무시됩니다.
응답 하이라이트
{
"results": [
{
"title": "...",
"url": "https://...",
"snippet": "short summary, about 100–200 characters",
"summary": "long summary, about 600–800 characters",
"content": "",
"rerank_score": 2.1,
"authority": 3,
"date": "2026-10-20T08:00:00Z",
"site_name": "...",
"site_icon": "https://..."
}
]
}
- 모델에는
summary을(를) 전달하고 사람에게는snippet을(를) 보여주십시오. 전체 텍스트의 경우need_content을(를) 활성화하거나 몇 가지 결과를 선택하여 Fetch를 사용하십시오. rerank_score≥ 1.5 및authority≥ 3은 고품질 결과를 나타내며 적절한 필터링 임계값으로 활용하기 좋습니다.count=50을(를) 사용하면 응답 크기가 약 180 KB이며,need_content을(를) 사용하면 두 배 이상 늘어납니다. 이에 맞게 클라이언트 타임아웃을 설정하십시오.
오류 코드
| HTTP | 예시 메시지 | 원인 및 해결 방법 | 과금 여부 |
|---|---|---|---|
| 400 | 'count' must be between 1 and 50 | count 범위 초과 | 아니요 |
| 400 | 'query' must not be empty / missing field 'query' | query 누락 또는 비어 있음 | 아니요 |
| 400 | 'localization' must be a valid IP address | 로캘 코드가 전달되었습니다. IP를 전송하거나 해당 필드를 제거하십시오 | 아니요 |
| 401 | Invalid token. | 유효하지 않은 API 키 또는 Authorization 헤더 누락 | 아니요 |
| 429 | — | 업스트림 요청 제한(100 QPS) 초과. 대기 후 다시 시도하십시오 | 아니요 |
| 503 | no available channels for model deepseek-search | 해당 키의 그룹에 이 API(예: ClaudeCode)가 포함되어 있지 않습니다. default / svip 키를 사용하십시오 | 아니요 |
| 5xx / 504 | — | 업스트림 내부 오류 또는 타임아웃 발생. 나중에 다시 시도하십시오 | 아니요 |
type은 항상 shell_api_error입니다. HTTP 상태 코드를 기준으로 분기하십시오.인증
Add Authorization: Bearer YOUR_API_KEY to the request headers
본문
application/json
Search query, 1–128 characters, not all whitespace. Supports site: / lang: / after: and other operators
예시:
"DeepSeek V4 release"
Number of results, 1–50. Does not affect the price
필수 범위:
1 <= x <= 50예시:
5
Whether to return the page body. When false, content is always an empty string
The user's original question that triggered this search, 1–128 characters
The user's IP address, used to prioritize localized results. Not a locale code: passing ja-JP returns 400
예시:
"8.8.8.8"
응답
Search succeeded (billed once)
Show child attributes
Show child attributes
이 페이지가 도움이 되었나요?