DataForSEO
SEO, search-engine results, keyword research, backlinks and AI visibility data.
Membuat Tugas OnPage
Memulai crawl target dan mengembalikan id tugas di tasks[0].id - id itu adalah pegangan yang dibutuhkan setiap alat lain di keluarga ini, jadi simpanlah. max_crawl_pages membatasi crawl, start_url, max_crawl_depth, priority_urls, dan crawl_delay membentuknya, dan store_raw_html menentukan apakah post_dataforseo_on_page_raw_html akan punya sesuatu untuk disajikan nanti. Dibungkus dalam envelope DataForSEO: data di tasks[0].result, hasil di tasks[0].status_code - permintaan yang ditolak tetap mengembalikan HTTP 200. ⚠️ Ini bukan pasangan submit/fetch yang biasa: crawl adalah sesi yang kemudian ditanyakan oleh selusin alat lain berdasarkan id. Lakukan polling get_dataforseo_on_page_summary hingga crawl_progress terbaca finished; crawl satu halaman example.com memakan waktu jauh di bawah satu menit.
Referensi harga
- Metering: Biaya respons yang dilaporkan.
- Estimasi referensi per permintaan: USD 0.003.
- Pengali pelanggan referensi: 1.0. Jangan terapkan lagi pada jumlah pelanggan yang telah diselesaikan.
Hanya metadata referensi, bukan penawaran akun, harga yang dijamin, atau batas pengeluaran. Kredit sumber daya bukanlah kredit Felo. Biaya akhir mengikuti catatan tagihan Felo.
- Tipe: array (object | null)[]
- acceptTipe: string | null
_language header bahasa untuk mengakses situs web
field opsional
semua format locale didukung (xx, xx-XX, xxx-XX, dll.)
Catatan: jika Anda tidak menentukan parameter ini, beberapa situs web mungkin menolak akses; dalam hal ini, halaman akan dikembalikan dengan"type":"brokendi array respons - allowTipe: boolean | null
_subdomains sertakan halaman di subdomain
field opsional
setel ketruejika Anda ingin merayapi semua subdomain situs web target
nilai default:false - allowedTipe: array string[] | null
_subdomains subdomain yang akan dirayapi
field opsional
tentukan subdomain yang ingin Anda rayapi
contoh:["blog.site.com", "my.site.com", "shop.site.com"]
Catatan: untuk menggunakan parameter ini, parameterallow_subdomainsharus disetel kefalse;
jika tidak, konten fieldallowed_subdomainsakan diabaikan dan hasil akan dikembalikan untuk semua subdomain - browserTipe: string | null
_preset preset untuk parameter layar browser
field opsional
jika Anda menggunakan field ini, Anda tidak perlu menentukanbrowser_screen_width,browser_screen_height,browser_screen_scale_factornilai yang mungkin:desktop,mobile,tabletpresetdesktopakan menerapkan nilai berikut:browser_screen_width: 1920browser_screen_height: 1080browser_screen_scale_factor: 1presetmobileakan menerapkan nilai berikut:browser_screen_width: 390browser_screen_height: 844browser_screen_scale_factor: 3presettabletakan menerapkan nilai berikut:browser_screen_width: 1024browser_screen_height: 1366browser_screen_scale_factor: 2
Catatan: untuk menggunakan parameter ini, setelenable_javascriptatauenable_browser_renderingketrue - browserTipe: integer | null
_screen _height tinggi layar browser
field opsional
Anda dapat menetapkan tinggi layar browser khusus untuk melakukan audit bagi perangkat tertentu;
jika Anda menggunakan field ini, Anda tidak perlu menentukanbrowser_presetkarena akan diabaikan;
Catatan: untuk menggunakan parameter ini, setelenable_javascriptatauenable_browser_renderingketruenilai minimum, dalam piksel:240
nilai maksimum, dalam piksel:9999 - browserTipe: number | null
_screen _scale _factor faktor skala layar browser
field opsional
Anda dapat menetapkan rasio resolusi layar browser khusus untuk melakukan audit bagi perangkat tertentu;
jika Anda menggunakan field ini, Anda tidak perlu menentukanbrowser_presetkarena akan diabaikan;
Catatan: untuk menggunakan parameter ini, setelenable_javascriptatauenable_browser_renderingketruenilai minimum:0.5
nilai maksimum:3 - browserTipe: integer | null Format: int64
_screen _width lebar layar browser
field opsional
Anda dapat menetapkan lebar layar browser khusus untuk melakukan audit bagi perangkat tertentu;
jika Anda menggunakan field ini, Anda tidak perlu menentukanbrowser_presetkarena akan diabaikan;
Catatan: untuk menggunakan parameter ini, setelenable_javascriptatauenable_browser_renderingketruenilai minimum, dalam piksel:240
nilai maksimum, dalam piksel:9999 - calculateTipe: boolean | null
_keyword _density hitung kepadatan kata kunci untuk domain target
field opsional
setel ketruejika Anda ingin menghitung kepadatan kata kunci untuk halaman situs web
nilai default:false
Catatan: jika Anda menggunakan parameter ini, biaya tambahan akan berlaku; pelajari lebih lanjut tentang biaya tugas dengan parameter ini di artikel bantuan kami
setelah perayapan selesai, Anda dapat memperoleh nilai kepadatan kata kunci dengan endpoint Keyword Density - checkTipe: boolean | null
_spell - checkTipe: array string[] | null
_spell _exceptions kata yang dikecualikan dari pemeriksaan ejaan
field opsional
tentukan kata yang ingin Anda kecualikan dari pemeriksaan ejaan
panjang kata maksimum: 100 karakter
jumlah kata maksimum: 1000
contoh:"SERP", "minifiers", "JavaScript" - checkTipe: string | null
_spell _language bahasa pemeriksaan ejaan
field opsional
bahasa yang didukung: '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'
Catatan: jika tidak ada bahasa yang ditentukan, bahasa akan ditetapkan secara otomatis berdasarkan konten halaman - checksTipe: object | null
_threshold nilai ambang khusus untuk pemeriksaan
field opsional
Anda dapat menentukan nilai ambang khusus untuk parameter yang disertakan dalam objekcheckspada respons OnPage API;
Catatan: hanya nilai ambang bilangan bulat yang dapat diubah;
sebagai contoh, parameterhigh_loading_timedanlarge_page_sizesecara default disetel ke 3 detik dan 1 megabyte;
jika Anda ingin mengubah ambang ini menjadi 1 detik dan 1000 kbyte, gunakan cuplikan berikut:"checks_threshold": {<br>"high_loading_time": 1,<br>"large_page_size": 1000<br>}
parameter yang dapat disesuaikan beserta nilai default:"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"- propertyTipe: integer | null Format: int64
Name Signed 64-bit integers (long type).
- crawlTipe: integer | null
_delay jeda antar-hit, ms
field opsional
jeda kustom antar-hit crawler ke server
nilai default:2000 - crawlTipe: boolean | null
_sitemap _only hanya rayapi halaman yang ditunjukkan dalam sitemap
field opsional
atur ketruejika Anda ingin merayapi hanya halaman yang ditunjukkan dalam sitemap
jika Anda menetapkan parameter ini ketruedan tidak menentukancustom_sitemap, kami akan merayapi sitemap default
nilai default:false
Catatan: jika Anda ingin menggunakan parameter ini,respect_sitemapharus bernilaitrue - customTipe: string | null
_js javascript kustom
field opsional
Perhatikan bahwa waktu eksekusi skrip yang Anda masukkan di sini maksimal 700 ms, misalnya Anda dapat menggunakan cuplikan JS berikut untuk memeriksa apakah situs web berisi Google Tag Manager sebagai atributscr: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;nilai yang dikembalikan bergantung pada apa yang Anda tentukan di field ini. Misalnya, jika Anda menentukan skrip berikut:meta = {}; meta.url = document.URL; meta.test = 'test'; meta;
sebagai respons Anda akan menerima data berikut:"custom_js_response": {<br>"url": "https://dataforseo.com/",<br>"test": "test"<br>}
Catatan: panjang skrip yang Anda masukkan tidak boleh lebih dari 2000 karakter - customTipe: string | null
_robots _txt pengaturan robots.txt kustom
field opsional
contoh:Disallow: /directory1/ - customTipe: string | null
_sitemap URL sitemap kustom
field opsional
URL halaman tempat sitemap alternatif berada
Catatan: jika Anda ingin menggunakan parameter ini,respect_sitemapharus bernilaitrue - customTipe: string | null
_user _agent user agent khusus
field opsional
user agent khusus untuk merayapi situs web
contoh: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
nilai default:Mozilla/5.0 (compatible; RSiteAuditor) - disableTipe: boolean | null
_cookie _popup nonaktifkan popup cookie
field opsional
atur ketruejika Anda ingin menonaktifkan popup yang meminta persetujuan cookie dari pengguna;
nilai default:false - disableTipe: array string[] | null
_page _checks cegah pemeriksaan halaman tertentu berjalan
field opsional
tentukancheckstertentu untuk mencegahnya berjalan dan memengaruhionpage_scorecontoh:"disable_page_checks": ["is_5xx_code", "is_4xx_code"] - disableTipe: array string[] | null
_sitewide _checks cegah pemeriksaan seluruh situs tertentu berjalan
field opsional
tentukanchecksberikut untuk mencegahnya berjalan di situs webtarget:"test_page_not_found""test_canonicalization""test_https_redirect""test_directory_browsing"contoh:"disable_sitewide_checks": ["test_directory_browsing", "test_page_not_found"]pelajari lebih lanjut di pusat bantuan kami - disallowedTipe: array string[] | null
_subdomains subdomain yang tidak dirayapi
field opsional
tentukan subdomain yang tidak ingin Anda rayapi
contoh:["status.site.com", "docs.site.com"]
Catatan: untuk menggunakan parameter ini, parameterallow_subdomainsharus diatur ketrue - enableTipe: boolean | null
_browser _rendering emulasikan rendering browser untuk mengukur Core Web Vitals
field opsional
dengan menggunakan parameter ini Anda dapat mengemulasikan browser saat memuat halaman web;enable_browser_renderingmemuat gaya, gambar, font, animasi, video, dan sumber daya lain di halaman;
nilai default:false
atur ketrueuntuk memperoleh metrik Core Web Vitals (FID, CLS, LCP) dalam respons;
jika Anda menggunakan field ini, parameterenable_javascriptdanload_resourcesharus diatur ketrue
Catatan: jika Anda menggunakan parameter ini, biaya tambahan akan berlaku; pelajari lebih lanjut tentang biaya tugas dengan parameter ini di artikel bantuan kami; biaya dapat dihitung di Halaman Harga - enableTipe: boolean | null
_content _parsing - enableTipe: boolean | null
_javascript muat javascript di halaman
field opsional
atur ketruejika Anda ingin memuat skrip yang tersedia di halaman
nilai default:false
Catatan: jika Anda menggunakan parameter ini, biaya tambahan akan berlaku; pelajari lebih lanjut tentang biaya tugas dengan parameter ini di artikel bantuan kami; biaya dapat dihitung di Halaman Harga - enableTipe: boolean | null
_www _redirect _check periksa apakah domain menerapkan pengalihan www
field opsional
atur ketruejika Anda ingin memeriksa apakah domain yang diminta menerapkan pengalihan www ke non-www atau non-www ke www;
nilai default:false - enableTipe: boolean | null
_xhr aktifkan XMLHttpRequest di halaman
field opsional
atur ketruejika Anda ingin crawler kami meminta data dari server web menggunakan objek XMLHttpRequest
nilai default:false;jika Anda menggunakan field ini,enable_javascriptharus diatur ketrue; - forceTipe: boolean | null
_sitewide _checks aktifkan pemeriksaan seluruh situs saat merayapi satu halaman
field opsional
atur ketrueuntuk mendapatkan data tentang pemeriksaan seluruh situs saat merayapi satu halaman;
nilai default:false - loadTipe: boolean | null
_resources muat sumber daya
field opsional
atur ketruejika Anda ingin memuat gambar, stylesheet, skrip, dan sumber daya yang rusak
nilai default:false
Catatan: jika Anda menggunakan parameter ini, biaya tambahan akan berlaku; pelajari lebih lanjut tentang biaya tugas dengan parameter ini di artikel bantuan kami; biaya dapat dihitung di Halaman Harga - maxTipe: integer | null
_crawl _depth kedalaman perayapan
field opsional
kedalaman tautan halaman yang akan dirayapi;
misalnya, halaman awal perayapan adalah level 0, halaman yang memiliki tautan dari halaman tersebut adalah level 1, dan seterusnya. - maxTipe: integer
_crawl _pages batas halaman yang dirayapi
field wajib
jumlah halaman yang akan dirayapi pada domain yang ditentukan
Catatan:
jika Anda menetapkanmax_crawl_pageske 1 dan tidak menentukanstart_urlatau menetapkan halaman beranda di dalamnya, pemeriksaan seluruh situs berikut akan dinonaktifkan:test_canonicalization,enable_www_redirect_check,test_hidden_server_signature,test_page_not_found,test_directory_browsing,test_https_redirect
untuk tetap mengaktifkannya, aturforce_sitewide_checksketruejika Anda menetapkanmax_crawl_pageske 1 dan menentukanstart_urlselain halaman beranda, semua pemeriksaan seluruh situs akan dinonaktifkan;
untuk tetap mengaktifkannya, aturforce_sitewide_checksketrue - pingbackTipe: string | null
_url URL notifikasi tugas yang selesai
field opsional
saat tugas selesai, kami akan memberi tahu Anda melalui permintaan GET yang dikirim ke URL yang Anda tentukan
Anda dapat menggunakan string ‘$id’ sebagai variabel$iddan ‘$tag’ sebagai variabel$tagberenkode URL. Kami akan menyetel nilai yang diperlukan sebelum mengirim permintaan.
contoh:http://your-server.com/pingscript?id=$idhttp://your-server.com/pingscript?id=$id&tag=$tag
Catatan: karakter khusus dalampingback_urlakan dienkode URL;
yaitu, karakter#akan dienkode menjadi%23 - priorityTipe: array string[] | null
_urls URL yang akan dirayapi dengan melewati antrean
field opsional
URL yang ditentukan dalam array ini akan dirayapi terlebih dahulu, melewati antrean perayapan;
Catatan: Anda harus menentukan URL absolut;
Anda dapat menentukan hingga 20 URL;
semua URL dalam array harus termasuk dalam domaintarget;
subdomain akan diabaikan kecuali parameterallow_subdomainsdiatur ketruecontoh:"priority_urls": [<br>"https://dataforseo.com/apis/serp-api",<br>"https://dataforseo.com/contact"<br>] - respectTipe: boolean | null
_sitemap patuhi sitemap saat merayapi
field opsional
atur ketruejika Anda ingin mengikuti urutan halaman yang ditunjukkan dalam sitemap utama saat merayapi;
nilai default:false
Catatan: jika diatur ketrue, nilaiclick_depthdalam respons API akan sama dengan0;
fieldmax_crawl_depthpada permintaan akan diabaikan, Anda dapat menentukan jumlah halaman yang akan dirayapi menggunakan parametermax_crawl_pages - returnTipe: boolean | null
_despite _timeout kembalikan data halaman meskipun terjadi error timeout
field opsional
jikatrue, data akan diberikan untuk halaman yang gagal dimuat dalam 120 detik dan merespons dengan error timeout;
nilai default:false - robotsTipe: string | null
_txt _merge _mode gabungkan dengan atau timpa pengaturan robots.txt
field opsional
nilai yang mungkin:merge,override;
atur keoverridejika Anda ingin mengabaikan pembatasan perayapan situs web dan pengaturan robots.txt lainnya
nilai default:merge;
Catatan: jika diatur keoverride, tentukan parametercustom_robots_txt - startTipe: string | null
_url url pertama yang akan dirayapi
field opsional
Catatan: Anda harus menentukan URL absolut
jika Anda ingin merayapi satu halaman, tentukan URL-nya di field ini dan sebagai tambahan atur parametermax_crawl_pageske1
Anda juga dapat menggunakan endpoint Instant Pages langsung untuk mendapatkan data khusus halaman - storeTipe: boolean | null
_raw _html - supportTipe: boolean | null
_cookies dukung cookie pada halaman yang dirayapi
field opsional
atur ketrueuntuk mendukung cookie saat merayapi halaman
nilai default:false - switchTipe: boolean | null
_pool ganti kumpulan proxy
field opsional
jikatrue, kumpulan proxy tambahan akan digunakan untuk memperoleh data yang diminta;
parameter ini dapat digunakan jika banyak tugas ditetapkan secara bersamaan, sehingga kadang terjadi errorrate-limitdan/atausite_unreachable - tagTipe: string | null
pengenal tugas yang ditentukan pengguna
field opsional
batas karakter adalah 255
Anda dapat menggunakan parameter ini untuk mengidentifikasi tugas dan mencocokkannya dengan hasil
Anda akan menemukan nilaitagyang ditentukan di objekdatapada respons - targetTipe: string
domain target
field wajib
nama domain harus ditentukan tanpahttps://danwww.
jika Anda menentukan URL halaman, hasil akan dikembalikan untuk domain yang tercantum dalam URL - validateTipe: boolean | null
_micromarkup
- Tipe: object | null · Response36Afe1097B20_OnPageTaskPostResponseInfo200
- Tipe: number | null Format: doublecost
total biaya tugas, USD
- Tipe: integer | nullstatus
_code kode status umum; Anda dapat menemukan daftar lengkap kode respons di sini
- Tipe: string | nullstatus
_message pesan informasi umum; Anda dapat menemukan daftar lengkap pesan informasi umum di sini
- Tipe: array (object | null)[] | nulltasks
array tugas
- Tipe: object | null · Response36Afe1097B20_OnPageTaskPostTaskInfo
- costTipe: number | null Format: double
total biaya tugas, USD
- dataTipe: object | null
berisi parameter yang sama dengan yang Anda tentukan dalam permintaan POST
- propertyTipe: object | null
Name
- idTipe: string | null
pengenal tugas; pengenal tugas unik di sistem kami dalam format UUID
- pathTipe: array (string | null)[] | null
Jalur URL
- resultTipe: object | null
array hasil
dalam kasus ini, nilainya akan menjadinull - resultTipe: integer | null Format: int64
_count jumlah elemen dalam array hasil
- statusTipe: integer | null
_code kode status tugas yang dihasilkan oleh DataForSEO; dapat berada dalam rentang berikut: 10000-60000; Anda dapat menemukan daftar lengkap kode respons di sini
- statusTipe: string | null
_message pesan informasi tugas; Anda dapat menemukan daftar lengkap pesan informasi umum di sini
- timeTipe: string | null
waktu eksekusi, detik
- Tipe: integer | null Format: int64tasks
_count jumlah tugas dalam array tasks
- Tipe: integer | null Format: int64tasks
_error jumlah tugas dalam array tasks yang dikembalikan dengan error
- Tipe: string | nulltime
total waktu eksekusi, detik
- Tipe: string | nullversion
versi API saat ini
application/json - 400
Permintaan tidak dapat diproses. Periksa parameter permintaan.
- 401
Kunci API Felo yang valid diperlukan.
- 402
Permintaan tidak dapat dilanjutkan karena persyaratan penagihan belum terpenuhi.
- 403
Akun tidak diizinkan melakukan operasi ini.
- 429
Batas permintaan atau batas pengeluaran telah tercapai.
- 502
Layanan tidak dapat menyelesaikan permintaan.
- 503
API atau layanan penagihan untuk sementara tidak tersedia.
- 504
Layanan kehabisan waktu saat memproses permintaan.
- default
Respons error; respons passthrough upstream dapat menggunakan format penyedia
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
}
]
}