DataForSEO
SEO, search-engine results, keyword research, backlinks and AI visibility data.
Configurar tareas de OnPage
Inicia un rastreo de target y devuelve un id de tarea en tasks[0].id: ese id es la referencia que necesitan todas las demás herramientas de esta familia, así que guárdalo. max_crawl_pages limita el rastreo; start_url, max_crawl_depth, priority_urls y crawl_delay lo moldean; y store_raw_html decide si post_dataforseo_on_page_raw_html tendrá algo que servir después. Envuelto en el sobre de DataForSEO: los datos en tasks[0].result, el resultado en tasks[0].status_code; una solicitud rechazada sigue devolviendo HTTP 200. ⚠️ No es el par habitual de envío/consulta: el rastreo es una sesión que una docena de otras herramientas consulta después por id. Haz polling con get_dataforseo_on_page_summary hasta que crawl_progress indique finished; un rastreo de una página de example.com tardó bastante menos de un minuto.
Referencia de precios
- Medición: Costo de respuesta reportado.
- Estimación de referencia por solicitud: USD 0.003.
- Multiplicador de referencia del cliente: 1.0. No lo apliques de nuevo a un importe de cliente ya liquidado.
Solo metadatos de referencia, no una cotización de la cuenta, un precio garantizado ni un límite de gasto. Los créditos de recursos no son créditos de Felo. Los cargos finales se rigen por los registros de facturación de Felo.
- Tipo: array (object | null)[]
- acceptTipo: string | null
_language encabezado de idioma para acceder al sitio web
campo opcional
se admiten todos los formatos de configuración regional (xx, xx-XX, xxx-XX, etc.)
Nota: si no especificas este parámetro, algunos sitios web pueden denegar el acceso; en ese caso, las páginas se devolverán con"type":"brokenen el array de respuesta - allowTipo: boolean | null
_subdomains incluir páginas en subdominios
campo opcional
establécelo entruesi quieres rastrear todos los subdominios de un sitio web de destino
valor predeterminado:false - allowedTipo: array string[] | null
_subdomains subdominios que se van a rastrear
campo opcional
especifica los subdominios que quieres rastrear
ejemplo:["blog.site.com", "my.site.com", "shop.site.com"]
Nota: para usar este parámetro, el parámetroallow_subdomainsdebe establecerse enfalse;
de lo contrario, el contenido del campoallowed_subdomainsse ignorará y los resultados se devolverán para todos los subdominios - browserTipo: string | null
_preset preajuste de los parámetros de pantalla del navegador
campo opcional
si usas este campo, no necesitas indicarbrowser_screen_width,browser_screen_height,browser_screen_scale_factorvalores posibles:desktop,mobile,tabletel preajustedesktopaplicará los siguientes valores:browser_screen_width: 1920browser_screen_height: 1080browser_screen_scale_factor: 1el preajustemobileaplicará los siguientes valores:browser_screen_width: 390browser_screen_height: 844browser_screen_scale_factor: 3el preajustetabletaplicará los siguientes valores:browser_screen_width: 1024browser_screen_height: 1366browser_screen_scale_factor: 2
Nota: para usar este parámetro, estableceenable_javascriptoenable_browser_renderingentrue - browserTipo: integer | null
_screen _height altura de pantalla del navegador
campo opcional
puedes definir una altura de pantalla de navegador personalizada para realizar la auditoría de un dispositivo concreto;
si usas este campo, no necesitas indicarbrowser_preset, ya que se ignorará;
Nota: para usar este parámetro, estableceenable_javascriptoenable_browser_renderingentruevalor mínimo, en píxeles:240
valor máximo, en píxeles:9999 - browserTipo: number | null
_screen _scale _factor factor de escala de pantalla del navegador
campo opcional
puedes definir una proporción de resolución de pantalla de navegador personalizada para realizar la auditoría de un dispositivo concreto;
si usas este campo, no necesitas indicarbrowser_preset, ya que se ignorará;
Nota: para usar este parámetro, estableceenable_javascriptoenable_browser_renderingentruevalor mínimo:0.5
valor máximo:3 - browserTipo: integer | null Formato: int64
_screen _width anchura de pantalla del navegador
campo opcional
puedes definir una anchura de pantalla de navegador personalizada para realizar la auditoría de un dispositivo concreto;
si usas este campo, no necesitas indicarbrowser_preset, ya que se ignorará;
Nota: para usar este parámetro, estableceenable_javascriptoenable_browser_renderingentruevalor mínimo, en píxeles:240
valor máximo, en píxeles:9999 - calculateTipo: boolean | null
_keyword _density calcular la densidad de palabras clave para el dominio de destino
campo opcional
establécelo entruesi quieres calcular la densidad de palabras clave de las páginas del sitio web
valor predeterminado:false
Nota: si usas este parámetro, se aplicarán cargos adicionales; obtén más información sobre el costo de las tareas con este parámetro en nuestro artículo de ayuda
cuando finalice el rastreo, podrás obtener los valores de densidad de palabras clave con el endpoint Keyword Density - checkTipo: boolean | null
_spell - checkTipo: array string[] | null
_spell _exceptions palabras excluidas de la corrección ortográfica
campo opcional
especifica las palabras que quieres excluir de la corrección ortográfica
longitud máxima de palabra: 100 caracteres
cantidad máxima de palabras: 1000
ejemplo:"SERP", "minifiers", "JavaScript" - checkTipo: string | null
_spell _language idioma de la corrección ortográfica
campo opcional
idiomas admitidos: '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'
Nota: si no se especifica ningún idioma, se establecerá automáticamente según el contenido de la página - checksTipo: object | null
_threshold valores de umbral personalizados para las comprobaciones
campo opcional
puedes especificar valores de umbral personalizados para los parámetros incluidos en el objetochecksde las respuestas de la API OnPage;
Nota: solo se pueden modificar los valores de umbral enteros;
por ejemplo, los parámetroshigh_loading_timeylarge_page_sizese establecen en 3 segundos y 1 megabyte respectivamente de forma predeterminada;
si quieres cambiar estos umbrales a 1 segundo y 1000 kbytes, usa el siguiente fragmento:"checks_threshold": {<br>"high_loading_time": 1,<br>"large_page_size": 1000<br>}
parámetros personalizables disponibles con valores predeterminados:"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"- propertyTipo: integer | null Formato: int64
Name Signed 64-bit integers (long type).
- crawlTipo: integer | null
_delay retraso entre accesos, ms
campo opcional
el retraso personalizado entre los accesos del rastreador al servidor
valor predeterminado:2000 - crawlTipo: boolean | null
_sitemap _only rastrear solo las páginas indicadas en el sitemap
campo opcional
establécelo entruesi quieres rastrear solo las páginas indicadas en el sitemap
si estableces este parámetro entruey no especificascustom_sitemap, rastrearemos el sitemap predeterminado
valor predeterminado:false
Nota: para usar este parámetro,respect_sitemapdebe sertrue - customTipo: string | null
_js javascript personalizado
campo opcional
Nota: el tiempo de ejecución del script que introduzcas aquí debe ser de 700 ms como máximo; por ejemplo, puedes usar el siguiente fragmento de JS para comprobar si el sitio web contiene Google Tag Manager como atributoscr: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;El valor devuelto depende de lo que especifiques en este campo. Por ejemplo, si especificas el siguiente script:meta = {}; meta.url = document.URL; meta.test = 'test'; meta;
como respuesta recibirás los siguientes datos:"custom_js_response": {<br>"url": "https://dataforseo.com/",<br>"test": "test"<br>}
Nota: la longitud del script que introduzcas no debe superar los 2000 caracteres - customTipo: string | null
_robots _txt configuración personalizada de robots.txt
campo opcional
ejemplo:Disallow: /directory1/ - customTipo: string | null
_sitemap url del sitemap personalizado
campo opcional
la URL de la página donde se encuentra el sitemap alternativo
Nota: para usar este parámetro,respect_sitemapdebe sertrue - customTipo: string | null
_user _agent user agent personalizado
campo opcional
user agent personalizado para rastrear un sitio web
ejemplo: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
valor predeterminado:Mozilla/5.0 (compatible; RSiteAuditor) - disableTipo: boolean | null
_cookie _popup desactivar la ventana emergente de cookies
campo opcional
establécelo entruesi quieres desactivar la ventana emergente que solicita el consentimiento de cookies al usuario;
valor predeterminado:false - disableTipo: array string[] | null
_page _checks impedir la ejecución de determinadas comprobaciones de página
campo opcional
especifica determinadoscheckspara impedir que se ejecuten y afecten alonpage_scoreejemplo:"disable_page_checks": ["is_5xx_code", "is_4xx_code"] - disableTipo: array string[] | null
_sitewide _checks impedir la ejecución de determinadas comprobaciones en todo el sitio
campo opcional
especifica los siguientescheckspara impedir que se ejecuten en el sitio webtarget:"test_page_not_found""test_canonicalization""test_https_redirect""test_directory_browsing"ejemplo:"disable_sitewide_checks": ["test_directory_browsing", "test_page_not_found"]más información en nuestro Centro de ayuda - disallowedTipo: array string[] | null
_subdomains subdominios que no se deben rastrear
campo opcional
especifica los subdominios que no quieres rastrear
ejemplo:["status.site.com", "docs.site.com"]
Nota: para usar este parámetro, el parámetroallow_subdomainsdebe establecerse entrue - enableTipo: boolean | null
_browser _rendering emular el renderizado del navegador para medir Core Web Vitals
campo opcional
con este parámetro podrás emular un navegador al cargar una página web;enable_browser_renderingcarga estilos, imágenes, fuentes, animaciones, vídeos y otros recursos de una página;
valor predeterminado:false
establécelo entruepara obtener métricas de Core Web Vitals (FID, CLS, LCP) en la respuesta;
si usas este campo, los parámetrosenable_javascriptyload_resourcesdeben establecerse entrue
Nota: si usas este parámetro, se aplicarán cargos adicionales; obtén más información sobre el costo de las tareas con este parámetro en nuestro artículo de ayuda; el costo puede calcularse en la página de Precios - enableTipo: boolean | null
_content _parsing - enableTipo: boolean | null
_javascript cargar javascript en una página
campo opcional
establécelo entruesi quieres cargar los scripts disponibles en una página
valor predeterminado:false
Nota: si usas este parámetro, se aplicarán cargos adicionales; obtén más información sobre el costo de las tareas con este parámetro en nuestro artículo de ayuda; el costo puede calcularse en la página de Precios - enableTipo: boolean | null
_www _redirect _check comprobar si el dominio implementó la redirección www
campo opcional
establécelo entruesi quieres comprobar si el dominio solicitado implementó la redirección de www a no www o de no www a www;
valor predeterminado:false - enableTipo: boolean | null
_xhr habilitar XMLHttpRequest en una página
campo opcional
establécelo entruesi quieres que nuestro rastreador solicite datos de un servidor web mediante el objeto XMLHttpRequest
valor predeterminado:false;si usas este campo,enable_javascriptdebe establecerse entrue; - forceTipo: boolean | null
_sitewide _checks habilitar comprobaciones en todo el sitio al rastrear una sola página
campo opcional
establécelo entruepara obtener datos sobre las comprobaciones en todo el sitio al rastrear una sola página;
valor predeterminado:false - loadTipo: boolean | null
_resources cargar recursos
campo opcional
establécelo entruesi quieres cargar imágenes, hojas de estilo, scripts y recursos dañados
valor predeterminado:false
Nota: si usas este parámetro, se aplicarán cargos adicionales; obtén más información sobre el costo de las tareas con este parámetro en nuestro artículo de ayuda; el costo puede calcularse en la página de Precios - maxTipo: integer | null
_crawl _depth profundidad de rastreo
campo opcional
la profundidad de enlace de las páginas que se van a rastrear;
por ejemplo, la página inicial del rastreo es el nivel 0, las páginas que tienen enlaces desde esa página son el nivel 1, etc. - maxTipo: integer
_crawl _pages límite de páginas rastreadas
campo obligatorio
el número de páginas que se van a rastrear en el dominio especificado
Nota:
si establecesmax_crawl_pagesen 1 y no especificasstart_urlo estableces una página de inicio en él, se desactivarán las siguientes comprobaciones en todo el sitio:test_canonicalization,enable_www_redirect_check,test_hidden_server_signature,test_page_not_found,test_directory_browsing,test_https_redirect
para habilitarlas de todos modos, estableceforce_sitewide_checksentruesi establecesmax_crawl_pagesen 1 y especificas unstart_urldistinto de una página de inicio, se desactivarán todas las comprobaciones en todo el sitio;
para habilitarlas de todos modos, estableceforce_sitewide_checksentrue - pingbackTipo: string | null
_url URL de notificación de una tarea completada
campo opcional
cuando se completa una tarea, te notificaremos mediante una solicitud GET enviada a la URL que hayas especificado
puedes usar la cadena ‘$id’ como variable$idy ‘$tag’ como variable$tagcodificada para URL. Estableceremos los valores necesarios antes de enviar la solicitud.
ejemplo:http://your-server.com/pingscript?id=$idhttp://your-server.com/pingscript?id=$id&tag=$tag
Nota: los caracteres especiales depingback_urlse codificarán para URL;
es decir, el carácter#se codificará como%23 - priorityTipo: array string[] | null
_urls urls que se rastrearán omitiendo la cola
campo opcional
las URL especificadas en este array se rastrearán en primer lugar, omitiendo la cola de rastreo;
Nota: debes especificar la URL absoluta;
puedes especificar hasta 20 URL;
todas las URL del array deben pertenecer al dominiotarget;
los subdominios se ignorarán a menos que el parámetroallow_subdomainsesté establecido entrueejemplo:"priority_urls": [<br>"https://dataforseo.com/apis/serp-api",<br>"https://dataforseo.com/contact"<br>] - respectTipo: boolean | null
_sitemap respetar el sitemap al rastrear
campo opcional
establécelo entruesi quieres seguir el orden de las páginas indicadas en el sitemap principal al rastrear;
valor predeterminado:false
Nota: si se establece entrue, el valor declick_depthen la respuesta de la API será igual a0;
el campomax_crawl_depthde la solicitud se ignorará; puedes especificar el número de páginas que se van a rastrear con el parámetromax_crawl_pages - returnTipo: boolean | null
_despite _timeout devolver datos de las páginas a pesar del error de tiempo de espera
campo opcional
si estrue, se proporcionarán datos de las páginas que no se cargaron en 120 segundos y respondieron con un error de tiempo de espera;
valor predeterminado:false - robotsTipo: string | null
_txt _merge _mode combinar o sustituir la configuración de robots.txt
campo opcional
valores posibles:merge,override;
establécelo enoverridesi quieres ignorar las restricciones de rastreo del sitio web y otra configuración de robots.txt
valor predeterminado:merge;
Nota: si se establece enoverride, especifica el parámetrocustom_robots_txt - startTipo: string | null
_url la primera url que se va a rastrear
campo opcional
Nota: debes especificar una URL absoluta
si quieres rastrear una sola página, especifica su URL en este campo y, además, establece el parámetromax_crawl_pagesen1
también puedes usar el endpoint Instant Pages en vivo para obtener datos específicos de la página - storeTipo: boolean | null
_raw _html - supportTipo: boolean | null
_cookies admitir cookies en las páginas rastreadas
campo opcional
establécelo entruepara admitir cookies al rastrear las páginas
valor predeterminado:false - switchTipo: boolean | null
_pool cambiar el grupo de proxies
campo opcional
si estrue, se usarán grupos de proxies adicionales para obtener los datos solicitados;
el parámetro puede usarse si se establecen muchas tareas simultáneamente, lo que provoca erroresrate-limitosite_unreachableocasionales - tagTipo: string | null
identificador de tarea definido por el usuario
campo opcional
el límite de caracteres es 255
puedes usar este parámetro para identificar la tarea y relacionarla con el resultado
encontrarás el valor detagespecificado en el objetodatade la respuesta - targetTipo: string
dominio de destino
campo obligatorio
el nombre de dominio debe especificarse sinhttps://ywww.
si especificas la URL de la página, los resultados se devolverán para el dominio incluido en la URL - validateTipo: boolean | null
_micromarkup
- Tipo: object | null · Response36Afe1097B20_OnPageTaskPostResponseInfo200
- Tipo: number | null Formato: doublecost
costo total de las tareas, USD
- Tipo: integer | nullstatus
_code código de estado general puedes encontrar la lista completa de los códigos de respuesta aquí
- Tipo: string | nullstatus
_message mensaje informativo general puedes encontrar la lista completa de los mensajes informativos generales aquí
- Tipo: array (object | null)[] | nulltasks
array de tareas
- Tipo: object | null · Response36Afe1097B20_OnPageTaskPostTaskInfo
- costTipo: number | null Formato: double
costo total de las tareas, USD
- dataTipo: object | null
contiene los mismos parámetros que especificaste en la solicitud POST
- propertyTipo: object | null
Name
- idTipo: string | null
identificador de la tarea identificador único de la tarea en nuestro sistema en formato UUID
- pathTipo: array (string | null)[] | null
ruta de la URL
- resultTipo: object | null
array de resultados
en este caso, el valor seránull - resultTipo: integer | null Formato: int64
_count número de elementos en el array de resultados
- statusTipo: integer | null
_code código de estado de la tarea generado por DataForSEO; puede estar dentro del siguiente intervalo: 10000-60000 puedes encontrar la lista completa de los códigos de respuesta aquí
- statusTipo: string | null
_message mensaje informativo de la tarea puedes encontrar la lista completa de los mensajes informativos generales aquí
- timeTipo: string | null
tiempo de ejecución, segundos
- Tipo: integer | null Formato: int64tasks
_count el número de tareas en el array de tareas
- Tipo: integer | null Formato: int64tasks
_error el número de tareas en el array de tareas devueltas con un error
- Tipo: string | nulltime
tiempo total de ejecución, en segundos
- Tipo: string | nullversion
la versión actual de la API
application/json - 400
No se pudo procesar la solicitud. Comprueba los parámetros de la solicitud.
- 401
Se requiere una clave de API de Felo válida.
- 402
La solicitud no puede continuar porque no se cumple un requisito de facturación.
- 403
La cuenta no tiene permiso para realizar esta operación.
- 429
Se ha alcanzado un límite de solicitudes o de gasto.
- 502
El servicio no pudo completar la solicitud.
- 503
La API o el servicio de facturación no están disponibles temporalmente.
- 504
El servicio agotó el tiempo de espera al procesar la solicitud.
- default
Respuesta de error; las respuestas de paso del upstream pueden usar formatos del proveedor
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
}
]
}