DataForSEO
SEO, search-engine results, keyword research, backlinks and AI visibility data.
Tạo tác vụ OnPage
Bắt đầu một lượt crawl target và trả về id tác vụ trong tasks[0].id - id đó là chuỗi định danh mà mọi công cụ khác trong nhóm này cần, nên hãy giữ lại. max_crawl_pages giới hạn lượt crawl, start_url, max_crawl_depth, priority_urls và crawl_delay định hình nó, còn store_raw_html quyết định post_dataforseo_on_page_raw_html có thứ gì để phục vụ sau này hay không. Được bọc trong phong bì của DataForSEO: dữ liệu ở tasks[0].result, kết quả ở tasks[0].status_code - yêu cầu bị từ chối vẫn trả về HTTP 200. ⚠️ Đây không phải cặp gửi/truy xuất thông thường: lượt crawl là một phiên mà một tá công cụ khác sau đó truy vấn theo id. Thăm dò get_dataforseo_on_page_summary cho tới khi crawl_progress đọc là finished; một lượt crawl một trang của example.com mất chưa tới một phút.
Tham chiếu giá
- Đo lường: Chi phí phản hồi được báo cáo.
- Ước tính tham chiếu cho mỗi yêu cầu: USD 0.003.
- Hệ số khách hàng tham chiếu: 1.0. Không áp dụng lại cho số tiền khách hàng đã quyết toán.
Chỉ là siêu dữ liệu tham chiếu, không phải báo giá cho tài khoản, mức giá được bảo đảm hay hạn mức chi tiêu. Tín dụng tài nguyên không phải tín dụng Felo. Khoản phí cuối cùng tuân theo bản ghi thanh toán của Felo.
- Kiểu: array (object | null)[]
- acceptKiểu: string | null
_language header ngôn ngữ để truy cập trang web
trường tùy chọn
hỗ trợ mọi định dạng locale (xx, xx-XX, xxx-XX, v.v.)
Lưu ý: nếu bạn không chỉ định tham số này, một số trang web có thể từ chối truy cập; khi đó, các trang sẽ được trả về với"type":"brokentrong mảng phản hồi - allowKiểu: boolean | null
_subdomains bao gồm các trang trên tên miền con
trường tùy chọn
đặt thànhtruenếu bạn muốn thu thập tất cả tên miền con của một trang web mục tiêu
giá trị mặc định:false - allowedKiểu: array string[] | null
_subdomains tên miền con cần thu thập
trường tùy chọn
chỉ định các tên miền con mà bạn muốn thu thập
ví dụ:["blog.site.com", "my.site.com", "shop.site.com"]
Lưu ý: để dùng tham số này, tham sốallow_subdomainsphải được đặt thànhfalse;
nếu không, nội dung của trườngallowed_subdomainssẽ bị bỏ qua và kết quả sẽ được trả về cho tất cả tên miền con - browserKiểu: string | null
_preset preset cho tham số màn hình trình duyệt
trường tùy chọn
nếu bạn dùng trường này, bạn không cần chỉ địnhbrowser_screen_width,browser_screen_height,browser_screen_scale_factorgiá trị khả dụng:desktop,mobile,tabletdesktoppreset sẽ áp dụng các giá trị sau:browser_screen_width: 1920browser_screen_height: 1080browser_screen_scale_factor: 1mobilepreset sẽ áp dụng các giá trị sau:browser_screen_width: 390browser_screen_height: 844browser_screen_scale_factor: 3tabletpreset sẽ áp dụng các giá trị sau:browser_screen_width: 1024browser_screen_height: 1366browser_screen_scale_factor: 2
Lưu ý: để dùng tham số này, hãy đặtenable_javascripthoặcenable_browser_renderingthànhtrue - browserKiểu: integer | null
_screen _height chiều cao màn hình trình duyệt
trường tùy chọn
bạn có thể đặt chiều cao màn hình trình duyệt tùy chỉnh để thực hiện đánh giá cho một thiết bị cụ thể;
nếu bạn dùng trường này, bạn không cần chỉ địnhbrowser_presetvì nó sẽ bị bỏ qua;
Lưu ý: để dùng tham số này, hãy đặtenable_javascripthoặcenable_browser_renderingthànhtruegiá trị tối thiểu, tính bằng pixel:240
giá trị tối đa, tính bằng pixel:9999 - browserKiểu: number | null
_screen _scale _factor hệ số tỉ lệ màn hình trình duyệt
trường tùy chọn
bạn có thể đặt tỉ lệ độ phân giải màn hình trình duyệt tùy chỉnh để thực hiện đánh giá cho một thiết bị cụ thể;
nếu bạn dùng trường này, bạn không cần chỉ địnhbrowser_presetvì nó sẽ bị bỏ qua;
Lưu ý: để dùng tham số này, hãy đặtenable_javascripthoặcenable_browser_renderingthànhtruegiá trị tối thiểu:0.5
giá trị tối đa:3 - browserKiểu: integer | null Định dạng: int64
_screen _width chiều rộng màn hình trình duyệt
trường tùy chọn
bạn có thể đặt chiều rộng màn hình trình duyệt tùy chỉnh để thực hiện đánh giá cho một thiết bị cụ thể;
nếu bạn dùng trường này, bạn không cần chỉ địnhbrowser_presetvì nó sẽ bị bỏ qua;
Lưu ý: để dùng tham số này, hãy đặtenable_javascripthoặcenable_browser_renderingthànhtruegiá trị tối thiểu, tính bằng pixel:240
giá trị tối đa, tính bằng pixel:9999 - calculateKiểu: boolean | null
_keyword _density tính mật độ từ khóa cho tên miền mục tiêu
trường tùy chọn
đặt thànhtruenếu bạn muốn tính mật độ từ khóa cho các trang của trang web
giá trị mặc định:false
Lưu ý: nếu bạn dùng tham số này, sẽ phát sinh thêm phí; tìm hiểu thêm về chi phí của các tác vụ có tham số này trong bài viết trợ giúp của chúng tôi
sau khi quá trình thu thập hoàn tất, bạn có thể lấy giá trị mật độ từ khóa bằng endpoint Keyword Density - checkKiểu: boolean | null
_spell - checkKiểu: array string[] | null
_spell _exceptions các từ được loại trừ khỏi kiểm tra chính tả
trường tùy chọn
chỉ định các từ bạn muốn loại trừ khỏi kiểm tra chính tả
độ dài từ tối đa: 100 ký tự
số lượng từ tối đa: 1000
ví dụ:"SERP", "minifiers", "JavaScript" - checkKiểu: string | null
_spell _language ngôn ngữ kiểm tra chính tả
trường tùy chọn
ngôn ngữ được hỗ trợ: 'hy', 'eu', 'bg', 'ca', 'hr', 'cs', 'da', 'nl', 'en', 'eo', 'et', 'fo', 'fa', 'fr', 'fy', 'gl', 'ka', 'de', 'el', 'he', 'hu', 'is', 'ia', 'ga', 'it', 'rw', 'la', 'lv', 'lt', 'mk', 'mn', 'ne', 'nb', 'nn', 'pl', 'pt', 'ro', 'gd', 'sr', 'sk', 'sl', 'es', 'sv', 'tr', 'tk', 'uk', 'vi'
Lưu ý: nếu không chỉ định ngôn ngữ, ngôn ngữ sẽ được đặt tự động dựa trên nội dung trang - checksKiểu: object | null
_threshold giá trị ngưỡng tùy chỉnh cho các kiểm tra
trường tùy chọn
bạn có thể chỉ định giá trị ngưỡng tùy chỉnh cho các tham số trong đối tượngcheckscủa phản hồi OnPage API;
Lưu ý: chỉ có thể sửa đổi giá trị ngưỡng dạng số nguyên;
ví dụ: các tham sốhigh_loading_timevàlarge_page_sizemặc định được đặt thành 3 giây và 1 megabyte;
nếu bạn muốn đổi các ngưỡng này thành 1 giây và 1000 kbyte, hãy dùng đoạn mã sau:"checks_threshold": {<br>"high_loading_time": 1,<br>"large_page_size": 1000<br>}
các tham số có thể tùy chỉnh cùng giá trị mặc định:"title_too_short", default value: 30, type: "int"<br>"title_too_long", default value: 65, type: "int"<br>"small_page_size", default value: 1024, type: "int"<br>"large_page_size", default value: 1048576 (1024 * 1024), type: "int"<br>"low_character_count", default value: 1024, type: "int"<br>"high_character_count", default value: 256000 (250 * 1024), type: "int"<br>"low_content_rate", default value: 0.1, type: "float"<br>"high_content_rate", default value: 0.9, type: "float"<br>"high_loading_time", default value: 3000, type: "int"<br>"high_waiting_time", default value: 1500, type: "int"<br>"low_readability_rate", default value: 15.0, type: "float"<br>"irrelevant_description", default value: 0.2, type: "float"<br>"irrelevant_title", default value: 0.3, type: "float"<br>"irrelevant_meta_keywords", default value: 0.6, type: "float"- propertyKiểu: integer | null Định dạng: int64
Name Signed 64-bit integers (long type).
- crawlKiểu: integer | null
_delay độ trễ giữa các lần truy cập, ms
trường tùy chọn
độ trễ tùy chỉnh giữa các lần trình thu thập truy cập máy chủ
giá trị mặc định:2000 - crawlKiểu: boolean | null
_sitemap _only chỉ thu thập các trang được chỉ định trong sitemap
trường tùy chọn
đặt thànhtruenếu bạn chỉ muốn thu thập các trang được chỉ định trong sitemap
nếu bạn đặt tham số này thànhtruevà không chỉ địnhcustom_sitemap, chúng tôi sẽ thu thập sitemap mặc định
giá trị mặc định:false
Lưu ý: nếu bạn muốn dùng tham số này,respect_sitemapphải làtrue - customKiểu: string | null
_js javascript tùy chỉnh
trường tùy chọn
Lưu ý rằng thời gian thực thi của đoạn script bạn nhập ở đây tối đa là 700 ms, ví dụ bạn có thể dùng đoạn mã JS sau để kiểm tra xem website có chứa Google Tag Manager dưới dạng thuộc tínhscrhay không:let meta = { haveGoogleAnalytics: false, haveTagManager: false };rnfor (var i = 0; i < document.scripts.length; i++) {rn let src = document.scripts[i].getAttribute("src");rn if (src != undefined) {rn if (src.indexOf("analytics.js") >= 0)rn meta.haveGoogleAnalytics = true;rntif (src.indexOf("gtm.js") >= 0)rn meta.haveTagManager = true;rn }rn}rnmeta;giá trị trả về phụ thuộc vào nội dung bạn chỉ định trong trường này. Ví dụ, nếu bạn chỉ định script sau:meta = {}; meta.url = document.URL; meta.test = 'test'; meta;
thì phản hồi bạn nhận được sẽ là dữ liệu sau:"custom_js_response": {<br>"url": "https://dataforseo.com/",<br>"test": "test"<br>}
Lưu ý: độ dài script bạn nhập không được vượt quá 2000 ký tự - customKiểu: string | null
_robots _txt cài đặt robots.txt tùy chỉnh
trường tùy chọn
ví dụ:Disallow: /directory1/ - customKiểu: string | null
_sitemap URL sitemap tùy chỉnh
trường tùy chọn
URL của trang chứa sitemap thay thế
Lưu ý: nếu bạn muốn dùng tham số này,respect_sitemapphải làtrue - customKiểu: string | null
_user _agent user agent tùy chỉnh
trường tùy chọn
user agent tùy chỉnh để thu thập dữ liệu trang web
ví dụ:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
giá trị mặc định:Mozilla/5.0 (compatible; RSiteAuditor) - disableKiểu: boolean | null
_cookie _popup tắt cửa sổ bật lên về cookie
trường tùy chọn
đặt thànhtruenếu bạn muốn tắt cửa sổ bật lên yêu cầu đồng ý cookie từ người dùng;
giá trị mặc định:false - disableKiểu: array string[] | null
_page _checks ngăn một số kiểm tra trang chạy
trường tùy chọn
chỉ định một sốchecksđể ngăn chúng chạy và ảnh hưởng đếnonpage_scoreví dụ:"disable_page_checks": ["is_5xx_code", "is_4xx_code"] - disableKiểu: array string[] | null
_sitewide _checks ngăn một số kiểm tra toàn trang chạy
trường tùy chọn
chỉ định cáccheckssau để ngăn chúng chạy trên websitetarget:"test_page_not_found""test_canonicalization""test_https_redirect""test_directory_browsing"ví dụ:"disable_sitewide_checks": ["test_directory_browsing", "test_page_not_found"]tìm hiểu thêm tại trung tâm trợ giúp của chúng tôi - disallowedKiểu: array string[] | null
_subdomains các miền con không thu thập
trường tùy chọn
chỉ định các miền con bạn không muốn thu thập
ví dụ:["status.site.com", "docs.site.com"]
Lưu ý: để dùng tham số này, tham sốallow_subdomainsphải được đặt thànhtrue - enableKiểu: boolean | null
_browser _rendering mô phỏng kết xuất trình duyệt để đo Core Web Vitals
trường tùy chọn
khi dùng tham số này, bạn có thể mô phỏng trình duyệt khi tải trang web;enable_browser_renderingtải kiểu dáng, hình ảnh, phông chữ, hoạt ảnh, video và các tài nguyên khác trên trang;
giá trị mặc định:false
đặt thànhtrueđể nhận các chỉ số Core Web Vitals (FID, CLS, LCP) trong phản hồi;
nếu bạn dùng trường này, các tham sốenable_javascriptvàload_resourcesphải được đặt thànhtrue
Lưu ý: nếu bạn dùng tham số này, sẽ phát sinh thêm phí; tìm hiểu thêm về chi phí của các tác vụ có tham số này trong bài viết trợ giúp của chúng tôi; chi phí có thể được tính trên Trang Bảng giá - enableKiểu: boolean | null
_content _parsing - enableKiểu: boolean | null
_javascript tải javascript trên trang
trường tùy chọn
đặt thànhtruenếu bạn muốn tải các script có trên trang
giá trị mặc định:false
Lưu ý: nếu bạn dùng tham số này, sẽ phát sinh thêm phí; tìm hiểu thêm về chi phí của các tác vụ có tham số này trong bài viết trợ giúp của chúng tôi; chi phí có thể được tính trên Trang Bảng giá - enableKiểu: boolean | null
_www _redirect _check kiểm tra xem miền đã triển khai chuyển hướng www chưa
trường tùy chọn
đặt thànhtruenếu bạn muốn kiểm tra xem miền được yêu cầu đã triển khai chuyển hướng www sang non-www hoặc non-www sang www chưa;
giá trị mặc định:false - enableKiểu: boolean | null
_xhr bật XMLHttpRequest trên trang
trường tùy chọn
đặt thànhtruenếu bạn muốn trình thu thập của chúng tôi yêu cầu dữ liệu từ máy chủ web bằng đối tượng XMLHttpRequest
giá trị mặc định:false;nếu bạn dùng trường này,enable_javascriptphải được đặt thànhtrue; - forceKiểu: boolean | null
_sitewide _checks bật kiểm tra toàn trang khi thu thập một trang
trường tùy chọn
đặt thànhtrueđể nhận dữ liệu về kiểm tra toàn trang khi thu thập một trang;
giá trị mặc định:false - loadKiểu: boolean | null
_resources tải tài nguyên
trường tùy chọn
đặt thànhtruenếu bạn muốn tải hình ảnh, stylesheet, script và tài nguyên bị lỗi
giá trị mặc định:false
Lưu ý: nếu bạn dùng tham số này, sẽ phát sinh thêm phí; tìm hiểu thêm về chi phí của các tác vụ có tham số này trong bài viết trợ giúp của chúng tôi; chi phí có thể được tính trên Trang Bảng giá - maxKiểu: integer | null
_crawl _depth độ sâu thu thập
trường tùy chọn
độ sâu liên kết của các trang cần thu thập;
ví dụ: trang bắt đầu của lượt thu thập là cấp 0, các trang có liên kết từ trang đó là cấp 1, v.v. - maxKiểu: integer
_crawl _pages giới hạn số trang thu thập
trường bắt buộc
số trang cần thu thập trên miền đã chỉ định
Lưu ý:
nếu bạn đặtmax_crawl_pagesthành 1 và không chỉ địnhstart_urlhoặc đặt trang chủ trong đó, các kiểm tra toàn trang sau sẽ bị tắt:test_canonicalization,enable_www_redirect_check,test_hidden_server_signature,test_page_not_found,test_directory_browsing,test_https_redirect
để bật chúng trong mọi trường hợp, hãy đặtforce_sitewide_checksthànhtruenếu bạn đặtmax_crawl_pagesthành 1 và chỉ địnhstart_urlkhông phải trang chủ, tất cả kiểm tra toàn trang sẽ bị tắt;
để bật chúng trong mọi trường hợp, hãy đặtforce_sitewide_checksthànhtrue - pingbackKiểu: string | null
_url URL thông báo của tác vụ đã hoàn thành
trường tùy chọn
khi tác vụ hoàn thành, chúng tôi sẽ thông báo cho bạn bằng yêu cầu GET gửi đến URL bạn đã chỉ định
bạn có thể dùng chuỗi ‘$id’ làm biến$idvà ‘$tag’ làm biến$tagđược mã hóa URL. Chúng tôi sẽ đặt các giá trị cần thiết trước khi gửi yêu cầu.
ví dụ:http://your-server.com/pingscript?id=$idhttp://your-server.com/pingscript?id=$id&tag=$tag
Lưu ý: ký tự đặc biệt trongpingback_urlsẽ được mã hóa URL;
cụ thể, ký tự#sẽ được mã hóa thành%23 - priorityKiểu: array string[] | null
_urls các URL được thu thập bỏ qua hàng đợi
trường tùy chọn
các URL được chỉ định trong mảng này sẽ được thu thập trước tiên, bỏ qua hàng đợi thu thập;
Lưu ý: bạn phải chỉ định URL tuyệt đối;
bạn có thể chỉ định tối đa 20 URL;
tất cả URL trong mảng phải thuộc miềntarget;
các miền con sẽ bị bỏ qua trừ khi tham sốallow_subdomainsđược đặt thànhtrueví dụ:"priority_urls": [<br>"https://dataforseo.com/apis/serp-api",<br>"https://dataforseo.com/contact"<br>] - respectKiểu: boolean | null
_sitemap tuân theo sitemap khi thu thập
trường tùy chọn
đặt thànhtruenếu bạn muốn tuân theo thứ tự các trang được chỉ định trong sitemap chính khi thu thập;
giá trị mặc định:false
Lưu ý: nếu đặt thànhtrue, giá trịclick_depthtrong phản hồi API sẽ bằng0;
trườngmax_crawl_depthcủa yêu cầu sẽ bị bỏ qua, bạn có thể chỉ định số trang cần thu thập bằng tham sốmax_crawl_pages - returnKiểu: boolean | null
_despite _timeout trả dữ liệu về các trang dù gặp lỗi hết thời gian chờ
trường tùy chọn
nếutrue, dữ liệu sẽ được cung cấp cho các trang không tải xong trong 120 giây và trả về lỗi hết thời gian chờ;
giá trị mặc định:false - robotsKiểu: string | null
_txt _merge _mode hợp nhất hoặc ghi đè cài đặt robots.txt
trường tùy chọn
giá trị khả dụng:merge,override;
đặt thànhoverridenếu bạn muốn bỏ qua các hạn chế thu thập của website và các cài đặt robots.txt khác
giá trị mặc định:merge;
Lưu ý: nếu đặt thànhoverride, hãy chỉ định tham sốcustom_robots_txt - startKiểu: string | null
_url - storeKiểu: boolean | null
_raw _html - supportKiểu: boolean | null
_cookies hỗ trợ cookie trên các trang đã thu thập
trường tùy chọn
đặt thànhtrueđể hỗ trợ cookie khi thu thập các trang
giá trị mặc định:false - switchKiểu: boolean | null
_pool chuyển nhóm proxy
trường tùy chọn
nếu làtrue, các nhóm proxy bổ sung sẽ được dùng để lấy dữ liệu được yêu cầu;
tham số có thể được dùng nếu nhiều tác vụ được đặt cùng lúc, dẫn đến lỗirate-limitvà/hoặcsite_unreachablekhông thường xuyên - tagKiểu: string | null
mã định danh tác vụ do người dùng xác định
trường tùy chọn
giới hạn ký tự là 255
bạn có thể dùng tham số này để nhận diện tác vụ và khớp với kết quả
bạn sẽ thấy giá trịtagđã chỉ định trong đối tượngdatacủa phản hồi - targetKiểu: string
miền đích
trường bắt buộc
tên miền phải được chỉ định mà không cóhttps://vàwww.
nếu bạn chỉ định URL trang, kết quả sẽ được trả về cho miền có trong URL - validateKiểu: boolean | null
_micromarkup
- Kiểu: object | null · Response36Afe1097B20_OnPageTaskPostResponseInfo200
- Kiểu: number | null Định dạng: doublecost
tổng chi phí tác vụ, USD
- Kiểu: integer | nullstatus
_code mã trạng thái chung; bạn có thể tìm danh sách đầy đủ các mã phản hồi tại đây
- Kiểu: string | nullstatus
_message thông điệp thông tin chung; bạn có thể tìm danh sách đầy đủ các thông điệp thông tin chung tại đây
- Kiểu: array (object | null)[] | nulltasks
mảng tác vụ
- Kiểu: object | null · Response36Afe1097B20_OnPageTaskPostTaskInfo
- costKiểu: number | null Định dạng: double
tổng chi phí tác vụ, USD
- dataKiểu: object | null
chứa các tham số giống như bạn đã chỉ định trong yêu cầu POST
- propertyKiểu: object | null
Name
- idKiểu: string | null
mã định danh tác vụ; mã định danh tác vụ duy nhất trong hệ thống của chúng tôi ở định dạng UUID
- pathKiểu: array (string | null)[] | null
Đường dẫn URL
- resultKiểu: object | null
mảng kết quả
trong trường hợp này, giá trị sẽ lànull - resultKiểu: integer | null Định dạng: int64
_count số phần tử trong mảng kết quả
- statusKiểu: integer | null
_code mã trạng thái của tác vụ do DataForSEO tạo; có thể nằm trong khoảng sau: 10000-60000; bạn có thể tìm danh sách đầy đủ các mã phản hồi tại đây
- statusKiểu: string | null
_message thông điệp thông tin của tác vụ; bạn có thể tìm danh sách đầy đủ các thông điệp thông tin chung tại đây
- timeKiểu: string | null
thời gian thực thi, giây
- Kiểu: integer | null Định dạng: int64tasks
_count số lượng tác vụ trong mảng tasks
- Kiểu: integer | null Định dạng: int64tasks
_error số lượng tác vụ trong mảng tasks được trả về kèm lỗi
- Kiểu: string | nulltime
tổng thời gian thực thi, giây
- Kiểu: string | nullversion
phiên bản hiện tại của API
application/json - 400
Không thể xử lý yêu cầu. Hãy kiểm tra các tham số yêu cầu.
- 401
Cần có khóa API Felo hợp lệ.
- 402
Không thể tiếp tục yêu cầu vì chưa đáp ứng yêu cầu thanh toán.
- 403
Tài khoản không được phép thực hiện thao tác này.
- 429
Đã đạt giới hạn yêu cầu hoặc giới hạn chi tiêu.
- 502
Dịch vụ không thể hoàn tất yêu cầu.
- 503
API hoặc dịch vụ thanh toán tạm thời không khả dụng.
- 504
Dịch vụ đã hết thời gian chờ khi xử lý yêu cầu.
- default
Phản hồi lỗi; phản hồi chuyển tiếp từ thượng nguồn có thể dùng định dạng của nhà cung cấp
application/json
curl https://openapi.felo.ai/v1/beta/dataforseo/on_page/task_post \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--data '[
{
"target": "dataforseo.com",
"max_crawl_pages": 10,
"load_resources": true,
"enable_javascript": true,
"custom_js": "meta = {}; meta.url = document.URL; meta;",
"tag": "some_string_123",
"pingback_url": "https://your-server.com/pingscript?id=$id&tag=$tag"
}
]'
{
"version": null,
"status_code": null,
"status_message": null,
"time": null,
"cost": null,
"tasks_count": null,
"tasks_error": null,
"tasks": [
{
"id": null,
"status_code": null,
"status_message": null,
"time": null,
"cost": null,
"result_count": null,
"path": [
null
],
"data": null,
"result": null
}
]
}