Search
API SERP để truy vấn công cụ tìm kiếm và nhận kết quả có cấu trúc.
Giới thiệu
API Search của AnyCrawl cho phép truy cập có lập trình kết quả từ nhiều công cụ tìm kiếm. Xây dựng cho LLM, trả dữ liệu sạch, có cấu trúc, tối ưu cho xử lý và phân tích AI.
API trả dữ liệu ngay và đồng bộ — không cần polling hay webhook. Hỗ trợ nhiều công cụ tìm kiếm và lấy nhiều trang kết quả trong một request để thu thập dữ liệu đầy đủ.
Tính năng cốt lõi
- Đa engine: Hiện hỗ trợ Google, dự kiến thêm engine khác
- Tối ưu LLM: JSON có cấu trúc, phù hợp xử lý AI
- Đa ngôn ngữ: Tìm theo ngôn ngữ và khu vực khác nhau
- Nhiều trang kết quả: Lấy nhiều trang kết quả trong một request
- Hiệu năng cao: Đồng thời cao gốc với xử lý bất đồng bộ
- Phản hồi tức thì: API đồng bộ — nhận kết quả ngay không cần polling
- Kết quả đầy đủ: Trả cả kết quả tìm kiếm và gợi ý
Endpoint API
POST https://api.anycrawl.dev/v1/searchVí dụ sử dụng
Tìm kiếm cơ bản (Google mặc định)
curl -X POST "https://api.anycrawl.dev/v1/search" \
-H "Authorization: Bearer <your-api-key>" \
-H "Content-Type": "application/json" \
-d '{
"query": "OpenAI ChatGPT"
}'Tìm kiếm nhiều trang
curl -X POST "https://api.anycrawl.dev/v1/search" \
-H "Authorization: Bearer <your-api-key>" \
-H "Content-Type": "application/json" \
-d '{
"query": "machine learning tutorials",
"pages": 3,
"limit": 10
}'Tìm kiếm theo ngôn ngữ/khu vực
curl -X POST "https://api.anycrawl.dev/v1/search" \
-H "Authorization: Bearer <your-api-key>" \
-H "Content-Type": "application/json" \
-d '{
"query": "AnyCrawl",
"lang": "zh",
"pages": 2
}'Phân trang tìm kiếm
curl -X POST "https://api.anycrawl.dev/v1/search" \
-H "Authorization: Bearer <your-api-key>" \
-H "Content-Type": "application/json" \
-d '{
"query": "web scraping tools",
"offset": 20,
"limit": 10
}'Tìm kiếm an toàn (Safe Search)
curl -X POST "https://api.anycrawl.dev/v1/search" \
-H "Authorization: Bearer <your-api-key>" \
-H "Content-Type": "application/json" \
-d '{
"query": "educational content",
"safe_search": 0
}'Tham số request
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
query | string | Yes | - | Chuỗi truy vấn tìm kiếm cần thực thi |
template_id | string | No | - | template_id cho lần tìm kiếm này |
variables | object | No | - | Biến template (chỉ khi có template_id) |
engine | enum | No | google | Công cụ tìm kiếm. Hiện hỗ trợ: google |
limit | number | No | 10 | Số kết quả tối đa mỗi trang |
offset | number | No | 0 | Số kết quả bỏ qua (phân trang) |
pages | number | No | 1 | Số trang kết quả tìm kiếm (tối thiểu: 1, tối đa: 20) |
lang | string | No | en | Locale ngôn ngữ cho kết quả (ví dụ 'en', 'zh', 'es', 'fr') |
country | string | No | - | Locale quốc gia cho kết quả (ví dụ 'US', 'GB', 'CN') |
timeRange | enum | No | - | Lọc khoảng thời gian: day, week, month, year |
sources | enum | No | - | Nguồn tìm: web, images, news (SearXNG) |
safe_search | number | null | No | null | Mức tìm kiếm an toàn Google: 0 (tắt), 1 (vừa), 2 (chặt), hoặc null (mặc định). Chỉ áp dụng Google. |
Tùy chọn: scrape_options cho URL kết quả
Khi có, mỗi URL kết quả có thể được scrape với các tùy chọn đó (cùng trường /v1/scrape, trừ url top-level). Lưu ý: tùy chọn chỉ trình duyệt bị bỏ qua khi scrape không dùng trình duyệt.
| Field | Type | Default | Notes |
|---|---|---|---|
engine | enum | - | Engine scrape cho URL kết quả: auto, cheerio, playwright, puppeteer |
formats | array of enum | ["markdown"] | Định dạng đầu ra: markdown, html, text, screenshot, screenshot@fullPage, rawHtml, json, summary, links |
timeout | number | 60000 | Timeout mỗi request (ms) |
wait_for | number | - | Trễ trước khi trích (ms); chỉ engine trình duyệt; thấp hơn wait_for_selector |
wait_until | enum | - | Điều kiện chờ điều hướng: load, domcontentloaded, networkidle, commit |
wait_for_selector | string, object, or array | - | Chờ selector (chỉ engine trình duyệt). Chuỗi CSS, object { selector: string, state?: "attached" | "visible" | "hidden" | "detached", timeout?: number }, hoặc mảng. Mỗi mục chờ lần lượt. Ưu tiên hơn wait_for. |
include_tags | array of string | - | Chỉ gồm phần tử khớp CSS selector |
exclude_tags | array of string | - | Loại phần tử khớp CSS selector |
only_main_content | boolean | true | Chỉ trích nội dung chính (include_tags ưu tiên hơn) |
proxy | string (URI) | - | URL proxy tùy chọn |
json_options | object | - | Trích JSON có cấu trúc (schema, user_prompt, schema_name, schema_description) |
extract_source | enum | markdown | Nguồn trích JSON: markdown (mặc định) hoặc html |
ocr_options | boolean | false | OCR cho ảnh markdown. Ảnh hưởng markdown, không html/rawHtml. |
max_age | number | - | Tuổi cache tối đa (ms). 0 bỏ đọc cache; bỏ trống: mặc định máy chủ |
store_in_cache | boolean | true | Có ghi Page Cache cho mỗi lần scrape kết quả hay không |
Công cụ tìm kiếm được hỗ trợ
google (mặc định)
- Khi nào: Tìm web tổng quát, kết quả đầy đủ
- Ưu điểm: Kết quả toàn diện, hỗ trợ đa ngôn ngữ và khu vực
- Tính năng: Trả kết quả và gợi ý. Hỗ trợ lọc tìm kiếm an toàn (tắt/vừa/chặt)
- Nên dùng: Tìm web chung, nghiên cứu, khám phá nội dung
- Safe Search: Tham số
safe_search: 0 (tắt), 1 (vừa), 2 (chặt), hoặc null (mặc định)
Định dạng phản hồi
Phản hồi thành công (HTTP 200)
Tìm kiếm thành công
{
"success": true,
"data": [
{
"title": "AlsoAsked: People Also Ask keyword research tool",
"url": "https://alsoasked.com/",
"description": "Find the questions people also ask. Enter a question, brand or search query. e.g. 'keyword research'.",
"source": "Google Search Result"
},
{
"title": "OpenAI ChatGPT Features and Benefits",
"url": "https://openai.com/chatgpt",
"description": "ChatGPT is an AI assistant that can help with writing, research, and problem-solving.",
"source": "Google Search Result"
},
{
"title": "Keyword tool",
"source": "Google Suggestions"
}
]
}Loại kết quả tìm kiếm
API trả hai loại:
- Kết quả tìm kiếm: Đủ title, URL, mô tả và nguồn
- Gợi ý tìm kiếm: Gợi ý truy vấn liên quan từ công cụ tìm kiếm
Phản hồi lỗi
400 - Lỗi xác thực
{
"success": false,
"error": "Validation error",
"details": {
"issues": [
{
"field": "engine",
"message": "Invalid enum value. Expected 'google', received 'invalid'",
"code": "invalid_enum_value"
}
],
"messages": ["Invalid enum value. Expected 'google', received 'invalid'"]
}
}401 - Không được xác thực (API key)
{
"success": false,
"error": "Invalid API key"
}402 - Cần thanh toán
{
"success": false,
"error": "Insufficient credits. Please upgrade your plan or purchase more credits."
}Thực hành tốt
Hướng dẫn chọn công cụ tìm kiếm
- Tìm web chung → Dùng
google(hiện là engine duy nhất được hỗ trợ) - Tìm đa ngôn ngữ → Đặt
langphù hợp - Nghiên cứu sâu → Dùng nhiều trang để có thêm kết quả
Tối ưu hiệu năng
- Gộp request: Dùng
pagesđể lấy nhiều trang trong một lần gọi thay vì gọi riêng lẻ - Nhắm ngôn ngữ: Chỉ định ngôn ngữ cho kết quả theo khu vực và bản địa hóa
- Tối ưu truy vấn: Dùng từ khóa và cụm từ cụ thể để chất lượng kết quả tốt hơn
Xử lý lỗi
try {
const response = await fetch("/v1/search", {
method: "POST",
headers: {
Authorization: "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
query: "artificial intelligence",
pages: 2,
}),
});
const result = await response.json();
if (result.success) {
// Handle successful result
console.log("Found results:", result.data.length);
// Separate search results from suggestions
const searchResults = result.data.filter((item) => item.url);
const suggestions = result.data.filter((item) => !item.url);
console.log("Search Results:", searchResults.length);
console.log("Suggestions:", suggestions.length);
} else {
// Handle search failure
console.error("Search failed:", result.error);
}
} catch (error) {
// Handle network error
console.error("Request failed:", error);
}Dùng đồng thời cao
API hỗ trợ đồng thời cao gốc. Bạn có thể gửi nhiều request tìm kiếm đồng thời mà không lo giới hạn tốc độ:
// Concurrent searching example
const queries = ["machine learning", "artificial intelligence", "data science"];
const searchPromises = queries.map((query) =>
fetch("/v1/search", {
method: "POST",
headers: {
Authorization: "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({ query, engine: "google", pages: 2 }),
}).then((res) => res.json())
);
// All requests execute concurrently and return immediately
const results = await Promise.all(searchPromises);
console.log(`Completed ${results.length} searches simultaneously`);Giới hạn tốc độ và credit
- Mỗi request tìm kiếm tiêu credit theo số trang yêu cầu
- Tiêu thụ credit = số trang (ví dụ
pages: 3= 3 credit) - Không giới hạn tốc độ cho request đồng thời — API hỗ trợ đồng thời cao gốc
- Theo dõi credit qua header phản hồi API
Câu hỏi thường gặp
Hỏi: Khi nào nên dùng cài đặt ngôn ngữ khác nhau?
Đáp:
- Tiếng Anh (
en): Kết quả toàn cầu và nội dung quốc tế - Tiếng Trung (
zh): Nội dung tiếng Trung và kết quả hướng Trung Quốc - Biến thể khu vực (ví dụ
en-GB,fr-CA): Kết quả theo quốc gia và bản địa hóa
Hỏi: Vì sao một số tìm kiếm trả ít kết quả hơn dự kiến?
Đáp: Có thể do:
- Truy vấn quá cụ thể hoặc từ hiếm
- Ngôn ngữ truy vấn không khớp
lang - Hạn chế của công cụ tìm kiếm với chủ đề hoặc khu vực
- Sự cố mạng
Hỏi: Xử lý tìm kiếm cần khu vực cụ thể?
Đáp: Hiện API tự chọn khu vực phù hợp dựa trên lang. Gợi ý:
- Dùng mã ngôn ngữ khớp khu vực đích (ví dụ
en-GBcho kết quả UK) - Thêm thuật ngữ theo khu vực vào truy vấn khi cần
Hỏi: Khác biệt giữa kết quả tìm kiếm và gợi ý?
Đáp:
- Kết quả tìm kiếm: Đủ title, URL, mô tả, nguồn
- Gợi ý: Truy vấn liên quan không có URL, hữu ích để mở rộng truy vấn
Hỏi: Có giới hạn tốc độ cho tìm kiếm đồng thời không?
Đáp: Không, API hỗ trợ đồng thời cao gốc. Có thể gửi nhiều request đồng thời không lo rate limit; mọi request trả dữ liệu ngay.
Hỗ trợ ngôn ngữ và khu vực
API Search hỗ trợ nhiều ngôn ngữ và khu vực qua tham số lang. Dưới đây là các locale được hỗ trợ:
Ngôn ngữ chính
all- Mọi ngôn ngữ
Tiếng Anh 🌐
en- Tiếng Anh (toàn cầu)en-AU- Tiếng Anh (Úc) 🇦🇺en-CA- Tiếng Anh (Canada) 🇨🇦en-GB- Tiếng Anh (Vương quốc Anh) 🇬🇧en-IE- Tiếng Anh (Ireland) 🇮🇪en-IN- Tiếng Anh (Ấn Độ) 🇮🇳en-NZ- Tiếng Anh (New Zealand) 🇳🇿en-PH- Tiếng Anh (Philippines) 🇵🇭en-PK- Tiếng Anh (Pakistan) 🇵🇰en-SG- Tiếng Anh (Singapore) 🇸🇬en-US- Tiếng Anh (Hoa Kỳ) 🇺🇸en-ZA- Tiếng Anh (Nam Phi) 🇿🇦
Tiếng Trung 🌐
zh- Tiếng Trung (toàn cầu)zh-CN- Tiếng Trung (Trung Quốc) 🇨🇳zh-HK- Tiếng Trung (Hồng Kông) 🇭🇰zh-TW- Tiếng Trung (Đài Loan) 🇹🇼
Tiếng Tây Ban Nha 🌐
es- Tiếng Tây Ban Nha (toàn cầu)es-AR- Tiếng Tây Ban Nha (Argentina) 🇦🇷es-CL- Tiếng Tây Ban Nha (Chile) 🇨🇱es-CO- Tiếng Tây Ban Nha (Colombia) 🇨🇴es-ES- Tiếng Tây Ban Nha (Tây Ban Nha) 🇪🇸es-MX- Tiếng Tây Ban Nha (Mexico) 🇲🇽es-PE- Tiếng Tây Ban Nha (Peru) 🇵🇪
Tiếng Pháp 🌐
fr- Tiếng Pháp (toàn cầu)fr-BE- Tiếng Pháp (Bỉ) 🇧🇪fr-CA- Tiếng Pháp (Canada) 🇨🇦fr-CH- Tiếng Pháp (Thụy Sĩ) 🇨🇭fr-FR- Tiếng Pháp (Pháp) 🇫🇷
Tiếng Đức 🌐
de- Tiếng Đức (toàn cầu)de-AT- Tiếng Đức (Áo) 🇦🇹de-BE- Tiếng Đức (Bỉ) 🇧🇪de-CH- Tiếng Đức (Thụy Sĩ) 🇨🇭de-DE- Tiếng Đức (Đức) 🇩🇪
Tiếng Bồ Đào Nha 🌐
pt- Tiếng Bồ Đào Nha (toàn cầu)pt-BR- Tiếng Bồ Đào Nha (Brazil) 🇧🇷pt-PT- Tiếng Bồ Đào Nha (Bồ Đào Nha) 🇵🇹
Tiếng Ý 🌐
it- Tiếng Ý (toàn cầu)it-CH- Tiếng Ý (Thụy Sĩ) 🇨🇭it-IT- Tiếng Ý (Ý) 🇮🇹
Tiếng Nhật 🌐
ja- Tiếng Nhật (toàn cầu)ja-JP- Tiếng Nhật (Nhật Bản) 🇯🇵
Tiếng Hàn 🌐
ko- Tiếng Hàn (toàn cầu)ko-KR- Tiếng Hàn (Hàn Quốc) 🇰🇷
Tiếng Nga 🌐
ru- Tiếng Nga (toàn cầu)ru-RU- Tiếng Nga (Nga) 🇷🇺
Ngôn ngữ châu Âu
Tiếng Hà Lan 🌐
nl- Tiếng Hà Lan (toàn cầu)nl-BE- Tiếng Hà Lan (Bỉ) 🇧🇪nl-NL- Tiếng Hà Lan (Hà Lan) 🇳🇱
Tiếng Ba Lan 🌐
pl- Tiếng Ba Lan (toàn cầu)pl-PL- Tiếng Ba Lan (Ba Lan) 🇵🇱
Tiếng Séc 🌐
cs- Tiếng Séc (toàn cầu)cs-CZ- Tiếng Séc (Cộng hòa Séc) 🇨🇿
Tiếng Hungary 🌐
hu- Tiếng Hungary (toàn cầu)hu-HU- Tiếng Hungary (Hungary) 🇭🇺
Tiếng Romania 🌐
ro- Tiếng Romania (toàn cầu)ro-RO- Tiếng Romania (Romania) 🇷🇴
Tiếng Hy Lạp 🌐
el- Tiếng Hy Lạp (toàn cầu)el-GR- Tiếng Hy Lạp (Hy Lạp) 🇬🇷
Tiếng Bulgaria 🌐
bg- Tiếng Bulgaria (toàn cầu)bg-BG- Tiếng Bulgaria (Bulgaria) 🇧🇬
Tiếng Croatia 🌐
hr- Tiếng Croatia (toàn cầu)
Tiếng Slovak 🌐
sk- Tiếng Slovak (toàn cầu)
Tiếng Slovenia 🌐
sl- Tiếng Slovenia (toàn cầu)
Tiếng Estonia 🌐
et- Tiếng Estonia (toàn cầu)et-EE- Tiếng Estonia (Estonia) 🇪🇪
Tiếng Latvia 🌐
lv- Tiếng Latvia (toàn cầu)
Tiếng Litva 🌐
lt- Tiếng Litva (toàn cầu)
Tiếng Phần Lan 🌐
fi- Tiếng Phần Lan (toàn cầu)fi-FI- Tiếng Phần Lan (Phần Lan) 🇫🇮
Tiếng Thụy Điển 🌐
sv- Tiếng Thụy Điển (toàn cầu)sv-SE- Tiếng Thụy Điển (Thụy Điển) 🇸🇪
Tiếng Na Uy 🌐
nb- Tiếng Na Uy Bokmålnb-NO- Tiếng Na Uy Bokmål (Na Uy) 🇳🇴
Tiếng Đan Mạch 🌐
da- Tiếng Đan Mạch (toàn cầu)da-DK- Tiếng Đan Mạch (Đan Mạch) 🇩🇰
Tiếng Iceland 🌐
is- Tiếng Iceland (toàn cầu)
Ngôn ngữ khác
Tiếng Ả Rập 🌐
ar- Tiếng Ả Rập (toàn cầu)ar-SA- Tiếng Ả Rập (Ả Rập Xê Út) 🇸🇦
Tiếng Hebrew 🇮🇱
he- Tiếng Hebrew
Tiếng Thổ Nhĩ Kỳ 🌐
tr- Tiếng Thổ Nhĩ Kỳ (toàn cầu)tr-TR- Tiếng Thổ Nhĩ Kỳ (Thổ Nhĩ Kỳ) 🇹🇷
Tiếng Ba Tư 🌐
fa- Tiếng Ba Tư
Tiếng Hindi 🌐
hi- Tiếng Hindi
Tiếng Urdu 🌐
ur- Tiếng Urdu
Tiếng Thái 🌐
th- Tiếng Thái (toàn cầu)th-TH- Tiếng Thái (Thái Lan) 🇹🇭
Tiếng Việt 🌐
vi- Tiếng Việt (toàn cầu)vi-VN- Tiếng Việt (Việt Nam) 🇻🇳
Tiếng Indonesia 🌐
id- Tiếng Indonesia (toàn cầu)id-ID- Tiếng Indonesia (Indonesia) 🇮🇩
Ngôn ngữ Ấn Độ
kn- Tiếng Kannada 🌐ml- Tiếng Malayalam 🌐mr- Tiếng Marathi 🌐ta- Tiếng Tamil 🌐te- Tiếng Telugu 🌐
Ngôn ngữ châu Âu khác
af- Tiếng Afrikaans 🌐be- Tiếng Belarus 🌐ca- Tiếng Catalan 🌐cy- Tiếng Wales 🌐eu- Tiếng Basque 🌐ga- Tiếng Ireland 🌐gd- Tiếng Gael Scotland 🌐gl- Tiếng Galicia 🌐sq- Tiếng Albania 🌐uk- Tiếng Ukraina 🌐
Ghi chú sử dụng
- Mã toàn cầu (ví dụ
en,zh,es) cho kết quả rộng hơn, không giới hạn quốc gia - Mã theo quốc gia (ví dụ
en-US,zh-CN,es-MX) trả kết quả bản địa hóa theo khu vực - API tự chọn domain Google và cài đặt ngôn ngữ phù hợp theo locale bạn chỉ định
- Nên khớp tham số
langvới ngôn ngữ của truy vấn tìm kiếm để kết quả tốt nhất