Nuestra Reporting API se utiliza para extraer información y métricas de tu cuenta de ContentKing. Entre los usos más comunes están conectar difrentes soluciones de software para agilizar la  elaboración de informes, y  la integración de ContentKing en tu portal de cliente.

Términos de uso de Reporting API

Al utilizar la Reporting API, aceptas los Términos de uso.

Recuperar tu token de Reporting API

Para usar la Reporting API necesitas el token de Reporting API de tu cuenta de ContentKing. Lo encontrarás en la sección de Cuenta, bajo la pestaña Ajustes de cuenta.

Encabezados de solicitud API

Cuando haces una solicitud necesitas enviar los siguientes encabezados de solicitud:

Authorization: token <place-your-API-token-here> Content-Type: application/json

Nota: necesitas proporcionar el  “token” de cadena, seguido de un espacio y el token de API.

URL de Reporting API

La Reporting API de ContentKing está disponible en la siguiente URL:

https://api.contentkingapp.com/

Conseguir una lista de sitios web en tu cuenta

Envía la siguiente solicitud para conseguir una lista de los sitios web en tu cuenta:

GET /v1/websites

La respuesta será así:

200 OK [ { "id": "1-234", "app_url": "https://app.contentkingapp.com/websites/1-234/dashboard", "domain": "https://www.contentkingapp.com", "name": null, "page_capacity": 1000 }, { "id": "1-2345", "app_url": "https://app.contentkingapp.com/websites/1-2345/dashboard", "domain": "https://www.contentkingapp.de", "name": "ContentKing - DE", "page_capacity": 500 } ]

Conseguir una lista de alertas para un sitio web

Envía la siguiente solicitud para conseguir una lista de alertas para un sitio web determinado en tu cuenta:

GET /v1/websites/<website_id>/alerts

La respuesta será así:

200 OK [ { "id": "1", "app_url": "https://app.contentkingapp.com/websites/1-234/events?event=1", "date_last_updated": "2018-05-10T12:59:21+02:00", "date_opened": "2018-05-10T12:59:21+02:00", "name": "robots_txt_changed", "scope": "platform", "type": "warning" }, { "id": "2", "app_url": "https://app.contentkingapp.com/websites/1-234/events?event=2", "date_last_updated": "2018-07-21T03:21:46+02:00", "date_opened": "2018-07-16T14:33:43+02:00", "name": "issue_opened.meta_information/title_missing", "scope": "pages", "type": "alert" } ]

Conseguir una lista de problemas de un sitio web

Envía la siguiente solicitud para conseguir una lista de problemas de un sitio web determinado en tu cuenta:

GET /v1/websites/<website_id>/issues

La respuesta será así:

200 OK [ { "name": "content_headings/h1_duplicate", "points_gained": 24, "points_to_gain": 0, "scope": "pages" }, { "name": "xml_sitemap/missing", "points_gained": 10, "points_to_gain": 0, "scope": "platform" } ]

Conseguir una lista de segmentos de un sitio web

Envía la siguiente solicitud para conseguir una lista de segmentos de un sitio web determinado en tu cuenta:

GET /v1/websites/<website_id>/segments

La respuesta será así:

200 OK [ { "id": "1", "color": "72c035", "label": "Indexable", "shortcode": "I" }, { "id": "2", "color": "9ea6af", "label": "Non-indexable", "shortcode": null } ]

Conseguir estadísticas de un sitio web o segmento de un sitio web

Envía la siguiente solicitud para conseguir estadísticas de un sitio web determinado en tu cuenta:

GET /v1/websites/<website_id>/statistics/website

O envía la siguiente solicitud para solicitar las estadísticas de un segmento determinado dentro del sitio web:

GET /v1/websites/<website_id>/segment:<segment_id>

La respuesta será así:

200 OK { "health": 969, "number_of_issues": 15, "number_of_urls": { "missing": 2, "page": 9, "redirect": 4, "server_error": 0, "unreachable": 0 } }

Errores específicos de la solicitud de estadísticas

404 Not found { "error": "No statistics found for given scope" }

Esta respuesta significa que las estadísticas solicitadas (del sitio web o segmento) no están disponibles en este momento. Es posible que estén disponibles más tarde.

Conseguir datos de una página determinada dentro de un sitio web

Envía la siguiente solicitud para conseguir información de un sitio web determinado en tu cuenta:

GET /v1/websites/<website_id>/pages?url=<url>

Respuesta para una página

La respuesta para una página existente (la URL devuelve un código de estado HTTP 200) sería así:

200 OK { "url": "https://www.contentkingapp.com/", "is_https": true, "ga_average_time": 10, "ga_bounce_rate": 5, "ga_date_range": { "since": "2018-05-09", "until": "2018-08-07" }, "ga_page_value": 0, "ga_page_views": 1, "ga_unique_page_views": 2, "gsc_clicks": 0, "gsc_ctr": 0, "gsc_date_range": { "since": "2018-05-09", "until": "2018-08-07" }, "gsc_impressions": 4, "gsc_position": 5, "health": 935, "is_disallowed_in_robots_txt": false, "is_indexable": true, "is_indexable_due_to_meta_robots": "yes", "is_indexable_due_to_x_robots_tag": "yes", "relevance": 8.72, "status_code": 200, "time_document_download": 183, "type": "page", "content": [ { "type": "canonical", "content": null }, { "type": "title", "content": "Blog" }, { "type": "meta_description", "content": "some meta description" }, { "type": "h1", "content": "ContentKing" }, { "type": "h2", "content": "Pricing" } { "type": "meta_robots", "content": null }, { "type": "open_graph_description", "content": null }, { "type": "open_graph_image", "content": null }, { "type": "open_graph_title", "content": null }, { "type": "open_graph_type", "content": null }, { "type": "open_graph_url", "content": null }, { "type": "twitter_card", "content": null }, { "type": "twitter_site", "content": null }, { "type": "google_analytics", "content": "UA-XXXXXX-X" } ], "schema_org": [], "segments": [ "1", "3" ], "app_url": "https://app.contentkingapp.com/websites/1-234/pages/3", "open_issues": [ { "name": "open_graph/missing" }, { "name": "twitter_cards/missing" }, { "name": "meta_information/meta_description_incorrect_length" }, { "name": "meta_information/title_incorrect_length" } ] }

Respuesta para una redirección

la respuesta para una redirección (la URL devuelve un código de estado HTTP 3xx) sería así:

200 OK { "url": "https://www.contentkingapp.com/this-redirects", "is_https": true, "gsc_clicks": 9, "gsc_ctr": 5, "gsc_date_range": { "since": "2018-05-09", "until": "2018-08-07" }, "gsc_impressions": 1, "gsc_position": 4, "is_disallowed_in_robots_txt": false, "is_indexable": false, "is_indexable_due_to_meta_robots": "not_applicable", "is_indexable_due_to_x_robots_tag": "not_applicable", "redirect": { "location": "https://www.contentkingapp.com/", "url": "https://www.contentkingapp.com/", }, "status_code": 302, "time_document_download": 149, "type": "redirect", "segments": [ "1" ], "app_url": "https://app.contentkingapp.com/websites/1-234/pages/4", }

Respuesta para una página que falta

La respuesta para una página que falta (la URL devuelve un código de estado HTTP 4xx) sería así:

200 OK { "url": "https://www.contentkingapp.com/this-does-not-exist", "is_https": true, "is_disallowed_in_robots_txt": false, "is_indexable": false, "is_indexable_due_to_meta_robots": "not_applicable", "is_indexable_due_to_x_robots_tag": "not_applicable", "status_code": 404, "time_document_download": 218, "type": "missing", "segments": [ "2" ], "app_url": "https://app.contentkingapp.com/websites/1-234/pages/5", }

Errores específicos en la solicitud de datos de página

404 Not found { "error": "Requested URL was not found" }

Esta respuesta significa que la URL de la solicitud no es monitorizada por ContentKing.

404 Not found { "error": "Requested URL cannot be provided via Reporting API" }

Esta respuesta significa que los datos de la URL de la solicitud no están disponibles a través de Reporting API.

Obtener la lista de páginas de un sitio web

Envía la siguiente solicitud para obtener una lista de las páginas de un sitio web en particular:

GET /v1/websites/<website_id>/pages/list?page=1&per_page=100&sort=url&direction=desc GET /v1/websites/<website_id>/pages/list?page=1&per_page=100&sort=url&direction=desc&filter%5Bsegment%5D=18

Paginación

Los parámetros de búsqueda "per_page" y "page" se utilizan para iterar sobre grandes conjuntos de resultados.

  • "per_page" puede estar en el rango de 1 a 500
  • "page" puede ir de 1 hasta "ceil(total / per_page)". Si "page" es mayor que el valor máximo, el campo de "urls" será una matriz vacia.

Respuesta para una página

Cada respuesta API contiene dos elementos clave:

  • "total": recuento de urls en el conjunto de resultados para una búsqueda determinada
  • "urls": urls paginadas en base a los parámetros de búsqueda per_page y page
200 OK { "total": 1, "urls": [ { "app_url": "https://app.contentkingapp.com/websites/1-2/pages/3", "analytics_services": [ "google_analytics" ], "canonical_type": "internal_self", "ga_average_time": 5.788, "ga_bounce_rate": 48, "ga_page_value": 0, "ga_page_views": 248, "ga_unique_page_views": 214, "gsc_clicks": 3, "gsc_ctr": 0.183, "gsc_impressions": 1635, "gsc_position": 41.021, "health": 950, "h1": "H1 page header", "hreflang_language": "en", "is_disallowed_in_robots_txt": false, "is_indexable": true, "is_indexable_due_to_meta_robots": true, "is_indexable_due_to_x_robots_tag": null, "is_linked": true, "link_amp": null, "link_next": null, "link_prev": null, "meta_description": "ContentKing keeps track of your website 24/7 so that you can catch unexpected changes and issues before search engines and visitors do. Try it today!", "mobile_variant": null, "number_of_hreflangs": 6, "number_of_incoming_internal_canonicals": 1, "number_of_incoming_internal_links": 314, "number_of_incoming_internal_redirects": 0, "number_of_outgoing_external_links": 10, "number_of_outgoing_internal_links": 65, "open_graph_description": "Get more visitors and increase conversions with ContentKing. Monitor your website and catch problems before search engines and visitors do. Try now!", "open_graph_image": "https://www.contentkingapp.com/wp-content/uploads/2017/12/%5B600x314%5D%20Facebook%20Open%20Graph%20-%[email protected]", "open_graph_title": "Content Optimization and Monitoring service ContentKing", "open_graph_type": "website", "open_graph_url": "https://www.contentkingapp.com/", "relevance": 5.97, "schema_org_number_of_types": 1, "schema_org_types": [ "Website" ], "segments": [ "18" ], "status_code": 200, "tag_managers": [ "google_tag_manager" ], "time_document_download": 947, "title": "Real-time SEO Auditing and Content Change Tracking - ContentKing", "twitter_card": "summary_large_image", "twitter_description": "Get more visitors and increase conversions with ContentKing. Catch problems before search engines and visitors do. Try it today!", "twitter_image": "https://www.contentkingapp.com/wp-content/uploads/2017/12/%5B600x314%5D%20Facebook%20Open%20Graph%20-%[email protected]", "twitter_site": "@contentking", "twitter_title": "Content Optimization service ContentKing", "type": "page", "url": "https://www.contentkingapp.com/", "url_depth": 0, "visual_analytics_services": [ "mouseflow" ] } ] }

Obtener la lista de páginas de una alerta del sitio web

Envía la siguiente solicitud para obtener una lista de páginas de una alerta de sitio web determinada:

GET /v1/websites/<website_id>/alerts/<alert_id>/pages?page=1&per_page=100

Paginación

Los parámetros de búsqueda "per_page" y "page" se utilizan para iterar sobre grandes conjuntos de resultados.

  • "per_page" puede estar entre 1 y 500
  • "page" puede ir de 1 hasta "ceil(total / per_page)". Si "page" es mayor que el valor máximo, el campo de "urls" será una matriz vacia.

Respuesta para una página

Cada respuesta API contiene dos elementos clave:

  • "total": recuento de urls en el conjunto de resultados para una búsqueda determinada
  • "urls": urls paginadas en base a los parámetros de búsqueda per_page y page
200 OK { "total": 1, "urls": [ { "app_url": "https://app.contentkingapp.com/websites/1-2/pages/3", "relevance": 5.97, "segments": [ "18" ], "url": "https://www.contentkingapp.com/" } ] }

Obtener una lista de páginas de un problema del sitio web

Envía la siguiente solicitud para obtener una lista de páginas de un problema del sitio web determinado:

GET /v1/websites/<website_id>/issues/<issue>/pages?page=1&per_page=100

Paginación

Los parámetros de búsqueda "per_page" y "page" se utilizan para iterar sobre grandes conjuntos de resultados.

  • "per_page" puede estar entre 1 y 500
  • "page" puede ir de 1 hasta "ceil(total / per_page)". Si "page" es mayor que el valor máximo, el campo de "urls" será una matriz vacia.

Respuesta para una página

Cada respuesta API contiene dos elementos clave:

  • "total": recuento de urls en el conjunto de resultados para una búsqueda determinada
  • "urls": urls paginadas en base a los parámetros de búsqueda per_page y page
200 OK { "total": 1, "urls": [ { "app_url": "https://app.contentkingapp.com/websites/1-2/pages/3", "relevance": 5.97, "segments": [ "18" ], "url": "https://www.contentkingapp.com/" } ] }

Lista de problemas

Problema Descripción
Analytics
analytics/analytics_missing No Analytics instalado
analytics/visual_analytics_missing No Visual analytics no está instalado
Encabezado de contenido
content_headings/h1_duplicate El encabezado H1 no es único
content_headings/h1_incorrect_length El encabezado H1 tiene una longitud incorrecta
content_headings/h1_missing No se encuentra el encabezado H1
content_headings/h1_too_many Hay más de un encabezado H1
Enlace canónico
canonical_link/incorrectly_canonicalized Hay un enlace canónico hacia otra página en una página no indexable
canonical_link/points_to_unindexable El enlace canónico está vinculado a una página no indexable
canonical_link/too_many Hay más de un enlace canónico
canonical_link/missing No se encuentra el enlace canónico
Imágenes
images/alt_attribute No aparece el atributo alt en las imágenes
images/title_attribute No aparece el atributo title en las imágenes
Enlaces
links/broken La página contiene enlaces rotos
links/redirected La página contiene enlaces hacia redirecciones
links/to_canonicalized La página contiene enlaces hacia URLs canonicalizadas
Meta información
meta_information/meta_description_duplicate La meta descripción no es única
meta_information/meta_description_incorrect_length La meta descripción tiene una longitud incorrecta
meta_information/meta_description_missing No se encuentra la meta descripción
meta_information/meta_description_too_many Existen múltiples meta descripciones en la página
meta_information/title_duplicate El título de página no es único
meta_information/title_incorrect_length El título de página tiene una longitud incorrecta
meta_information/title_missing No se encuentra el título
meta_information/title_too_many Existen múltiples títulos en las páginas
Open Graph
open_graph/description_incorrect_length La descripción de Open Graph tiene una longitud incorrecta
open_graph/missing No están presentes todos los elementos necesarios de Open Graph
open_graph/title_incorrect_length El título de Open Graph tiene una longitud incorrecta
Twitter Cards
twitter_cards/description_incorrect_length La descripción de Twitter Cards tiene una longitud incorrecta
twitter_cards/missing No están presentes todos los elementos necesarios de Twitter Cards
twitter_cards/title_incorrect_length El título de Twitter Cards tiene una longitud incorrecta
Mapa de sitio XML
xml_sitemap/incorrectly_missing La página no está incluida en el mapa de sitio XML
xml_sitemap/incorrectly_present Las páginas no están presentes correctamente en el mapa de sitio XML

Errores API comunes

Falta autorización

401 Unauthorized { "code": "auth_missing_token", "message": "Authentication token must be passed in Authorization HTTP header.", "errors": [] }

Esta respuesta significa que la solicitud ha sido recibida, pero falta el token de autorización y por lo tanto no puede ser procesada. Asegúrate de configurar el encabezado de autorización correctamente.

Autorización fallida

401 Unauthorized { "code": "auth_failed", "message": "Authentication token is expired or invalid.", "errors": [] }

Si recibes esta respuesta significa que la solicitud no ha podido ser procesada porque el token API proporcionado no es válido o ha expirado.

Términos de uso de Reporting API no aceptados

403 Forbidden { "code": "terms_of_use_not_accepted", "message": "Reporting API Terms of Use have not been accepted yet. Please accept Terms of Use in Account Settings.", "errors": [] }

Si recibes esta respuesta significa que aún no has aceptado los Términos de uso de Reporting API. Tienes que aceptarlos en los Ajustes de cuenta antes de poder empezar a utilizar Reporting API.

Sitio web no encontrado

404 Not found { "error": "Requested website ID was not found" }

Si recibes esta respuesta, el ID del sitio web que has especificado no se encuentra en tu cuenta.

Autorización malformada

422 Unprocessable Entity { "code": "auth_malformed", "message": "Authorization HTTP header must conform to format described in docs.", "errors": [] }

Esta respuesta significa que la solicitud ha sido recibida, pero la autorización no tenía el formato correcto. Asegúrate de configurar el encabezado de autorización correctamente.

 

Comenzar tus 14 días de prueba gratuita

Comience en tan solo 20 segundos

Ponga un nombre de dominio válido, por favor (www.ejemplo.es).
  • No se requiere ninguna tarjeta de crêdito
  • No hay que instalar nada
  • Sin compromiso