https://api.nexscope.ai/seo/categoryDomainComparisonEjecutar esta API
Envía una solicitud JSON para ejecutar esta API y recibir los datos de respuesta documentados.
Endpoint
| Método | POST |
| Ruta | https://api.nexscope.ai/seo/categoryDomainComparison |
| Autenticación | Bearer API key |
| Content-Type | application/json |
Parámetros de la solicitud
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
categoryIds | array | obligatorio | Valor de Category ids usado por esta operación de API. Cantidad mínima de elementos: 1 Cantidad máxima de elementos: 5 |
categoryIds[] | integer | obligatorio | Elemento de categoryIds. Mínimo: 1 Máximo: 2147483647 |
firstMonth | string | obligatorio | Valor de First month usado por esta operación de API. Patrón: ^\d{4}-\d{2}$ |
language | string | opcional | Valor de Language usado por esta operación de API. Constante: en Predeterminado: en |
limit | integer | opcional | Valor de Limit usado por esta operación de API. Predeterminado: 10 Mínimo: 1 Máximo: 20 |
market | string | opcional | Valor de Market usado por esta operación de API. Constante: US Predeterminado: US |
secondMonth | string | obligatorio | Valor de Second month usado por esta operación de API. Patrón: ^\d{4}-\d{2}$ |
Respuesta de ejemplo
Estructura de respuesta de ejemplo del contrato documentado de la API de SEO.
{
"code": 0,
"cost": "-1",
"data": {
"callId": "synthetic-call",
"completedAt": null,
"coverage": {
"missing": [
{
"field": "synthetic",
"reason": "UPSTREAM_FIELD_MISSING"
}
],
"status": "PARTIAL"
},
"requestedAt": "123",
"result": {
"categoryIds": [
1
],
"comparisonDirection": "synthetic",
"engine": "synthetic",
"firstMonth": "synthetic",
"items": [
{
"categoryIds": [
1
],
"change": {
"estimatedMonthlyVisits": 1.25,
"serpCount": 9007199254740992
},
"currentEstimatedMonthlyVisits": 1.25,
"currentSerpCount": 9007199254740992,
"domain": "synthetic",
"first": {
"month": "synthetic",
"organic": {
"estimatedEquivalentAdsCostUsd": "synthetic",
"estimatedMonthlyVisits": 1.25,
"positions": {
"p1": 9007199254740992,
"p11to20": 9007199254740992,
"p21to30": 9007199254740992,
"p2to3": 9007199254740992,
"p31to40": 9007199254740992,
"p41to50": 9007199254740992,
"p4to10": 9007199254740992,
"p51to60": 9007199254740992,
"p61to70": 9007199254740992,
"p71to80": 9007199254740992,
"p81to90": 9007199254740992,
"p91to100": 9007199254740992
},
"serpCount": 9007199254740992
}
},
"mainDomain": "synthetic",
"missing": [
{
"field": "synthetic",
"reason": "synthetic"
}
],
"second": {
"month": "synthetic",
"organic": {
"estimatedEquivalentAdsCostUsd": "synthetic",
"estimatedMonthlyVisits": 1.25,
"positions": {
"p1": 9007199254740992,
"p11to20": 9007199254740992,
"p21to30": 9007199254740992,
"p2to3": 9007199254740992,
"p31to40": 9007199254740992,
"p41to50": 9007199254740992,
"p4to10": 9007199254740992,
"p51to60": 9007199254740992,
"p61to70": 9007199254740992,
"p71to80": 9007199254740992,
"p81to90": 9007199254740992,
"p91to100": 9007199254740992
},
"serpCount": 9007199254740992
}
}
}
],
"language": "synthetic",
"market": "synthetic",
"missing": [
{
"field": "synthetic",
"reason": "synthetic"
}
],
"normalizedCategoryIds": [
1
],
"ordering": "synthetic",
"requestedLimit": 1,
"returnedCount": 1,
"secondMonth": "synthetic",
"sourceProduct": "synthetic",
"taxonomy": "synthetic",
"trafficKind": "synthetic",
"truncated": false
},
"schemaVersion": "synthetic",
"source": "synthetic",
"status": "PARTIAL",
"usage": {
"billingStatus": "UNAPPROVED",
"chargedCredits": "0"
}
},
"msg": null,
"time": "2026-01-01 00:00:00",
"traceId": "synthetic-trace",
"ts": "9007199254740993"
}Campos de respuesta
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
code | integer | obligatorio | 0 indica un sobre de respuesta satisfactorio; comprueba data.status por separado. Permitidos: 0, 42008, 42009 |
cost | string | obligatorio | Milisegundos transcurridos de procesamiento; no es el precio. -1 en un contexto no web. |
data | object | obligatorio | Valor de Data usado por esta operación de API. |
data.callId | string | null | opcional | Valor de Call id usado por esta operación de API. |
data.completedAt | string | integer | null | opcional | Valor de Completed at usado por esta operación de API. |
data.coverage | object | opcional | Valor de Coverage usado por esta operación de API. |
data.coverage.missing | array | opcional | Valor de Missing usado por esta operación de API. |
data.coverage.missing[] | object | obligatorio | Elemento de data coverage missing. |
data.coverage.missing[].field | string | opcional | Valor de Field usado por esta operación de API. |
data.coverage.missing[].reason | string | opcional | Valor de Reason usado por esta operación de API. |
data.coverage.status | string | opcional | Valor de Status usado por esta operación de API. |
data.requestedAt | string | integer | null | opcional | Valor de Requested at usado por esta operación de API. |
data.result | object | null | obligatorio | Valor de Result usado por esta operación de API. |
data.result.categoryIds | array | obligatorio | Valor de Category ids usado por esta operación de API. Cantidad mínima de elementos: 1 Cantidad máxima de elementos: 5 |
data.result.categoryIds[] | integer | obligatorio | Elemento de data result categoryIds. Mínimo: 1 |
data.result.comparisonDirection | string | obligatorio | Valor de Comparison direction usado por esta operación de API. Constante: second_minus_first |
data.result.engine | string | obligatorio | Valor de Engine usado por esta operación de API. Constante: google |
data.result.firstMonth | string | obligatorio | Valor de First month usado por esta operación de API. |
data.result.items | array | obligatorio | Valor de Items usado por esta operación de API. Cantidad mínima de elementos: 0 Cantidad máxima de elementos: 20 |
data.result.items[] | object | obligatorio | Elemento de data result items. |
data.result.items[].categoryIds | array | obligatorio | Valor de Category ids usado por esta operación de API. Cantidad mínima de elementos: 0 Cantidad máxima de elementos: 10000 |
data.result.items[].categoryIds[] | integer | obligatorio | Elemento de data result items[] categoryIds. Mínimo: 1 |
data.result.items[].change | object | obligatorio | Valor de Change usado por esta operación de API. |
data.result.items[].change.estimatedMonthlyVisits | number | null | obligatorio | Valor de Estimated monthly visits usado por esta operación de API. |
data.result.items[].change.serpCount | integer | null | obligatorio | Valor de Serp count usado por esta operación de API. |
data.result.items[].currentEstimatedMonthlyVisits | number | null | obligatorio | Valor de Current estimated monthly visits usado por esta operación de API. Mínimo: 0 |
data.result.items[].currentSerpCount | integer | null | obligatorio | Valor de Current serp count usado por esta operación de API. Mínimo: 0 |
data.result.items[].domain | string | obligatorio | Valor de Domain usado por esta operación de API. |
data.result.items[].first | object | obligatorio | Valor de First usado por esta operación de API. |
data.result.items[].first.month | string | obligatorio | Valor de Month usado por esta operación de API. |
data.result.items[].first.organic | object | obligatorio | Valor de Organic usado por esta operación de API. |
data.result.items[].first.organic.estimatedEquivalentAdsCostUsd | string | null | obligatorio | Valor de Estimated equivalent ads cost usd usado por esta operación de API. Patrón: ^(0|[1-9][0-9]*)(\.[0-9]+)?$ |
data.result.items[].first.organic.estimatedMonthlyVisits | number | null | obligatorio | Valor de Estimated monthly visits usado por esta operación de API. Mínimo: 0 |
data.result.items[].first.organic.positions | object | obligatorio | Valor de Positions usado por esta operación de API. |
data.result.items[].first.organic.positions.p1 | integer | null | obligatorio | Valor de P1 usado por esta operación de API. Mínimo: 0 |
data.result.items[].first.organic.positions.p11to20 | integer | null | obligatorio | Valor de P11to20 usado por esta operación de API. Mínimo: 0 |
data.result.items[].first.organic.positions.p21to30 | integer | null | obligatorio | Valor de P21to30 usado por esta operación de API. Mínimo: 0 |
data.result.items[].first.organic.positions.p2to3 | integer | null | obligatorio | Valor de P2to3 usado por esta operación de API. Mínimo: 0 |
data.result.items[].first.organic.positions.p31to40 | integer | null | obligatorio | Valor de P31to40 usado por esta operación de API. Mínimo: 0 |
data.result.items[].first.organic.positions.p41to50 | integer | null | obligatorio | Valor de P41to50 usado por esta operación de API. Mínimo: 0 |
data.result.items[].first.organic.positions.p4to10 | integer | null | obligatorio | Valor de P4to10 usado por esta operación de API. Mínimo: 0 |
data.result.items[].first.organic.positions.p51to60 | integer | null | obligatorio | Valor de P51to60 usado por esta operación de API. Mínimo: 0 |
data.result.items[].first.organic.positions.p61to70 | integer | null | obligatorio | Valor de P61to70 usado por esta operación de API. Mínimo: 0 |
data.result.items[].first.organic.positions.p71to80 | integer | null | obligatorio | Valor de P71to80 usado por esta operación de API. Mínimo: 0 |
data.result.items[].first.organic.positions.p81to90 | integer | null | obligatorio | Valor de P81to90 usado por esta operación de API. Mínimo: 0 |
data.result.items[].first.organic.positions.p91to100 | integer | null | obligatorio | Valor de P91to100 usado por esta operación de API. Mínimo: 0 |
data.result.items[].first.organic.serpCount | integer | null | obligatorio | Valor de Serp count usado por esta operación de API. Mínimo: 0 |
data.result.items[].mainDomain | string | null | obligatorio | Valor de Main domain usado por esta operación de API. |
data.result.items[].missing | array | obligatorio | Valor de Missing usado por esta operación de API. Cantidad mínima de elementos: 0 |
data.result.items[].missing[] | object | obligatorio | Elemento de data result items[] missing. |
data.result.items[].missing[].field | string | obligatorio | Valor de Field usado por esta operación de API. |
data.result.items[].missing[].reason | string | obligatorio | Valor de Reason usado por esta operación de API. Permitidos: UPSTREAM_FIELD_MISSING, UPSTREAM_FIELD_INVALID, DUPLICATE_UPSTREAM_ITEM, UPSTREAM_ITEM_MISSING |
data.result.items[].second | object | obligatorio | Valor de Second usado por esta operación de API. |
data.result.items[].second.month | string | obligatorio | Valor de Month usado por esta operación de API. |
data.result.items[].second.organic | object | obligatorio | Valor de Organic usado por esta operación de API. |
data.result.items[].second.organic.estimatedEquivalentAdsCostUsd | string | null | obligatorio | Valor de Estimated equivalent ads cost usd usado por esta operación de API. Patrón: ^(0|[1-9][0-9]*)(\.[0-9]+)?$ |
data.result.items[].second.organic.estimatedMonthlyVisits | number | null | obligatorio | Valor de Estimated monthly visits usado por esta operación de API. Mínimo: 0 |
data.result.items[].second.organic.positions | object | obligatorio | Valor de Positions usado por esta operación de API. |
data.result.items[].second.organic.positions.p1 | integer | null | obligatorio | Valor de P1 usado por esta operación de API. Mínimo: 0 |
data.result.items[].second.organic.positions.p11to20 | integer | null | obligatorio | Valor de P11to20 usado por esta operación de API. Mínimo: 0 |
data.result.items[].second.organic.positions.p21to30 | integer | null | obligatorio | Valor de P21to30 usado por esta operación de API. Mínimo: 0 |
data.result.items[].second.organic.positions.p2to3 | integer | null | obligatorio | Valor de P2to3 usado por esta operación de API. Mínimo: 0 |
data.result.items[].second.organic.positions.p31to40 | integer | null | obligatorio | Valor de P31to40 usado por esta operación de API. Mínimo: 0 |
data.result.items[].second.organic.positions.p41to50 | integer | null | obligatorio | Valor de P41to50 usado por esta operación de API. Mínimo: 0 |
data.result.items[].second.organic.positions.p4to10 | integer | null | obligatorio | Valor de P4to10 usado por esta operación de API. Mínimo: 0 |
data.result.items[].second.organic.positions.p51to60 | integer | null | obligatorio | Valor de P51to60 usado por esta operación de API. Mínimo: 0 |
data.result.items[].second.organic.positions.p61to70 | integer | null | obligatorio | Valor de P61to70 usado por esta operación de API. Mínimo: 0 |
data.result.items[].second.organic.positions.p71to80 | integer | null | obligatorio | Valor de P71to80 usado por esta operación de API. Mínimo: 0 |
data.result.items[].second.organic.positions.p81to90 | integer | null | obligatorio | Valor de P81to90 usado por esta operación de API. Mínimo: 0 |
data.result.items[].second.organic.positions.p91to100 | integer | null | obligatorio | Valor de P91to100 usado por esta operación de API. Mínimo: 0 |
data.result.items[].second.organic.serpCount | integer | null | obligatorio | Valor de Serp count usado por esta operación de API. Mínimo: 0 |
data.result.language | string | obligatorio | Valor de Language usado por esta operación de API. Constante: en |
data.result.market | string | obligatorio | Valor de Market usado por esta operación de API. Constante: US |
data.result.missing | array | obligatorio | Valor de Missing usado por esta operación de API. Cantidad mínima de elementos: 0 |
data.result.missing[] | object | obligatorio | Elemento de data result missing. |
data.result.missing[].field | string | obligatorio | Valor de Field usado por esta operación de API. |
data.result.missing[].reason | string | obligatorio | Valor de Reason usado por esta operación de API. Permitidos: UPSTREAM_FIELD_MISSING, UPSTREAM_FIELD_INVALID, DUPLICATE_UPSTREAM_ITEM, UPSTREAM_ITEM_MISSING |
data.result.normalizedCategoryIds | array | obligatorio | Valor de Normalized category ids usado por esta operación de API. Cantidad mínima de elementos: 1 Cantidad máxima de elementos: 5 |
data.result.normalizedCategoryIds[] | integer | obligatorio | Elemento de data result normalizedCategoryIds. Mínimo: 1 |
data.result.ordering | string | obligatorio | Valor de Ordering usado por esta operación de API. Constante: current_organic_etv_desc |
data.result.requestedLimit | integer | obligatorio | Valor de Requested limit usado por esta operación de API. Mínimo: 1 Máximo: 20 |
data.result.returnedCount | integer | obligatorio | Valor de Returned count usado por esta operación de API. Mínimo: 0 |
data.result.secondMonth | string | obligatorio | Valor de Second month usado por esta operación de API. |
data.result.sourceProduct | string | obligatorio | Valor de Source product usado por esta operación de API. Constante: dataforseo_labs |
data.result.taxonomy | string | obligatorio | Valor de Taxonomy usado por esta operación de API. Constante: google_product_service |
data.result.trafficKind | string | obligatorio | Valor de Traffic kind usado por esta operación de API. Constante: estimated |
data.result.truncated | boolean | obligatorio | Valor de Truncated usado por esta operación de API. |
data.schemaVersion | string | null | opcional | Valor de Schema version usado por esta operación de API. |
data.source | string | null | opcional | Valor de Source usado por esta operación de API. |
data.status | string | opcional | Valor de Status usado por esta operación de API. Permitidos: SUCCESS, PARTIAL, EMPTY, PROCESSING, UNKNOWN, FAILED |
data.usage | object | null | opcional | Valor de Usage usado por esta operación de API. |
data.usage.billingStatus | string | null | opcional | Valor de Billing status usado por esta operación de API. |
data.usage.chargedCredits | string | integer | null | opcional | Valor de Charged credits usado por esta operación de API. |
msg | string | null | obligatorio | Para los casos satisfactorios y los fallos se prefiere el valor disponible de msg/errmsg/message del proveedor; el chino se traduce al inglés. Si falta el mensaje de éxito, su valor es null. Los errores propios de la plataforma y los estados de las tareas utilizan el inglés de la plataforma. El texto del mensaje nunca determina el éxito ni el reintento. |
time | string | obligatorio | yyyy-MM-dd HH:mm:ss |
traceId | string | null | obligatorio | Valor de Trace id usado por esta operación de API. |
ts | string | obligatorio | Milisegundos desde el inicio de la época; serializador global de enteros long. |
Respuesta de procesamiento aceptado
code 0 confirma la aceptación. Usa data.callId para consultar la misma solicitud; el procesamiento no implica finalización.
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
code | integer | obligatorio | 0 indica un sobre de respuesta satisfactorio; comprueba data.status por separado. Constante: 0 |
cost | string | obligatorio | Milisegundos transcurridos de procesamiento; no es el precio. -1 en un contexto no web. |
data | object | obligatorio | Valor de Data usado por esta operación de API. |
data.callId | string | null | obligatorio | Valor de Call id usado por esta operación de API. |
data.reason | string | obligatorio | Valor de Reason usado por esta operación de API. Constante: IN_PROGRESS |
data.retryable | boolean | opcional | Valor de Retryable usado por esta operación de API. |
data.status | string | obligatorio | Valor de Status usado por esta operación de API. Constante: PROCESSING |
data.taskId | string | null | opcional | Valor de Task id usado por esta operación de API. |
msg | string | null | obligatorio | Para los casos satisfactorios y los fallos se prefiere el valor disponible de msg/errmsg/message del proveedor; el chino se traduce al inglés. Si falta el mensaje de éxito, su valor es null. Los errores propios de la plataforma y los estados de las tareas utilizan el inglés de la plataforma. El texto del mensaje nunca determina el éxito ni el reintento. |
time | string | obligatorio | yyyy-MM-dd HH:mm:ss |
traceId | string | null | obligatorio | Valor de Trace id usado por esta operación de API. |
ts | string | obligatorio | Milisegundos desde el inicio de la época; serializador global de enteros long. |
Respuesta de error
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
code | integer | obligatorio | 0 indica un sobre de respuesta satisfactorio; comprueba data.status por separado. |
cost | string | obligatorio | Milisegundos transcurridos de procesamiento; no es el precio. -1 en un contexto no web. |
data | object | obligatorio | Valor de Data usado por esta operación de API. |
data.callId | string | null | obligatorio | Valor de Call id usado por esta operación de API. |
data.reason | string | null | obligatorio | Valor de Reason usado por esta operación de API. |
data.retryable | boolean | opcional | Valor de Retryable usado por esta operación de API. |
data.status | string | null | obligatorio | Valor de Status usado por esta operación de API. |
data.taskId | string | null | opcional | Valor de Task id usado por esta operación de API. |
msg | string | null | obligatorio | Para los casos satisfactorios y los fallos se prefiere el valor disponible de msg/errmsg/message del proveedor; el chino se traduce al inglés. Si falta el mensaje de éxito, su valor es null. Los errores propios de la plataforma y los estados de las tareas utilizan el inglés de la plataforma. El texto del mensaje nunca determina el éxito ni el reintento. |
time | string | obligatorio | yyyy-MM-dd HH:mm:ss |
traceId | string | null | obligatorio | Valor de Trace id usado por esta operación de API. |
ts | string | obligatorio | Milisegundos desde el inicio de la época; serializador global de enteros long. |
Obtener un resultado en procesamiento
Una respuesta conPROCESSING y un callIdsignifica que el resultado aún se está preparando. Usa la consulta de resultado siguiente con el identificador devuelto. Esta consulta lee el resultado guardado y no consume créditos.
curl -X GET https://api.nexscope.ai/seo/categoryDomainComparison/calls/{callId} \
-H "Authorization: Bearer nk-xxxxxxxxxxxxxxxxx"Respuestas
| Código | Descripción |
|---|---|
| 200 | Respuesta HTTP predeterminada tanto para el éxito como para muchos errores de negocio. Solo el código JSON externo 0 indica éxito o aceptación asíncrona; consulta data para obtener el resultado. |
| 429 | Límite de admisión de ejecuciones; respeta Retry-After cuando esté presente. |
| 503 | La admisión de ejecuciones no está disponible temporalmente; respeta Retry-After cuando esté presente. |
| Opcional | X-Nexscope-Http-Status: semantic asigna estados HTTP a los errores de negocio gestionados por el controlador en las rutas de ejecución y tareas. Los fallos previos a la autenticación, como la ausencia de una clave API (code 11209), pueden seguir devolviendo HTTP 200 antes de esta asignación. Comprueba siempre el código JSON externo; las solicitudes malformadas y los fallos de infraestructura también pueden devolver respuestas HTTP distintas de 200. |
Fuente de datos, vigencia y limitaciones
La fuente, la vigencia, la cobertura, los límites de frecuencia y las notas de estimación no se especifican en esta definición de API salvo que aparezcan en la documentación de campos de solicitud o respuesta anterior. No supongas datos oficiales del mercado ni actualización en tiempo real cuando no estén documentados explícitamente.