Sin KYC — sin ID, sin selfie, sin documentos. Paga con criptomonedas: BTC, USDT, USDC, ETH, SOL, LTC
Idioma: Español
Obtener una clave API

Docs · Formato de respuesta · API v1

Formato de respuesta de la API SERP: cada bloque y campo del JSON

Un marco para cada motor y luego un bloque por cada parte de la página de resultados. Esta página enumera cada bloque, sus campos y sus tipos. En los ejemplos, los ID, recuentos, precios y resultados son ilustrativos.

Última actualización: · 8 min de lectura

Respuesta rápida

¿Qué contiene una respuesta de la API SERP de SerpCrypto?

Cada respuesta de SerpCrypto es un objeto JSON: search_metadata (estado, motor, créditos usados), search_parameters (los ajustes aplicados), search_information y luego un bloque por cada parte de la página de resultados, como organic_results, ai_overview, people_also_ask o local_results. Las partes ausentes simplemente no aparecen. Una página cuesta 1 crédito, desde 0,30 US$/1K búsquedas; se paga con criptomonedas, sin KYC.

¿Cómo es una respuesta completa de Google?

El ejemplo de abajo es una búsqueda de Google de standing desk en el Reino Unido, recortada a un elemento por array. Una respuesta real tiene unos diez resultados orgánicos y todos los demás bloques que mostró la página para esa consulta, ubicación y dispositivo.

engine=google, gl=gb: valores recortados e ilustrativos
{
  "search_metadata": {
    "id": "srch_2b81d0c6fa47",
    "status": "success",
    "engine": "google",
    "created_at": "2026-10-22T10:02:31Z",
    "credits_used": 1
  },
  "search_parameters": {
    "engine": "google",
    "q": "standing desk",
    "gl": "gb",
    "hl": "en",
    "google_domain": "google.co.uk",
    "device": "desktop",
    "page": 1
  },
  "search_information": { "total_results": 52400000, "query_displayed": "standing desk" },
  "ai_overview": {
    "text": "A standing desk lets you work while standing or sitting…",
    "references": [
      { "index": 1, "title": "How to choose a standing desk", "link": "https://www.example.co.uk/guide", "source": "Example Guide" }
    ]
  },
  "ads": [
    { "position": 1, "block": "top", "title": "Electric Standing Desks", "link": "https://shop.example.com/desks", "displayed_link": "shop.example.com", "description": "Free delivery on…" }
  ],
  "organic_results": [
    {
      "position": 1,
      "title": "Best standing desks 2026, tested",
      "link": "https://www.example.co.uk/best-standing-desks",
      "displayed_link": "www.example.co.uk › reviews",
      "snippet": "We tested 14 electric and manual desks…",
      "date": "12 Oct 2026",
      "sitelinks": [ { "title": "Budget picks", "link": "https://www.example.co.uk/best-standing-desks#budget" } ]
    }
  ],
  "people_also_ask": [
    { "question": "Is it healthy to stand all day at a desk?", "snippet": "…", "title": "Standing at work", "link": "https://www.example.org/standing" }
  ],
  "shopping_results": [
    { "position": 1, "title": "Example Desk Pro 140 cm", "price": "£299.00", "source": "Example Store", "link": "https://shop.example.com/desk-pro" }
  ],
  "related_searches": [ { "query": "standing desk electric" }, { "query": "standing desk converter" } ],
  "pagination": { "current": 1, "next_page": 2 }
}

¿Por qué faltan algunos bloques en mi respuesta?

Porque la página de resultados no los mostró. Google decide para cada consulta, lugar y dispositivo si muestra anuncios, un AI Overview, un paquete local o noticias destacadas. SerpCrypto devuelve lo que mostró la página y omite el resto, en lugar de enviar placeholders vacíos.

Lee cada bloque con un valor por defecto, como en las líneas de Python de abajo. La misma regla se aplica dentro de un bloque: los campos opcionales como date o sitelinks solo aparecen en los resultados que los tienen.

Python: leer bloques opcionales de forma segura
data = response.json()

# A block is present only when the results page shows it: read with a default.
overview = data.get("ai_overview") or {}
organic = data.get("organic_results", [])
questions = [item["question"] for item in data.get("people_also_ask", [])]

if overview:
    print("AI Overview sources:", [ref["link"] for ref in overview.get("references", [])])
print(len(organic), "organic results,", len(questions), "questions")

¿Qué hay en search_metadata?

CampoTipoDescripción
idstringIdentificador de la búsqueda. Cítalo cuando contactes con soporte.
statusstringsuccess en una respuesta 200.
enginestringEl motor que ejecutó la búsqueda.
created_atstringFecha y hora de la búsqueda, ISO 8601 en UTC.
credits_usedintegerCréditos consumidos por esta búsqueda: 1 si tiene éxito.

¿Qué son search_parameters y search_information?

Guarda search_parameters junto con tus resultados: registra exactamente de qué país, idioma, lugar y dispositivo proviene un ranking.

CampoTipoDescripción
search_parametersobjectLos parámetros aplicados, con los valores por defecto rellenados: engine, q, gl, hl, location, google_domain, device, page y los demás que enviaste.
search_information.total_resultsintegerEl número de resultados que mostró el motor, cuando mostró alguno. Es una estimación, no una cifra exacta.
search_information.query_displayedstringLa consulta tal como la mostró la página de resultados.

¿Qué campos tiene organic_results?

Los resultados orgánicos son los resultados web no pagados. En Bing, organic_results tiene la misma forma.

CampoTipoDescripción
positionintegerOrden del resultado en este bloque de esta página, empezando por 1.
titlestringEl título del enlace azul.
linkstringLa URL del resultado.
displayed_linkstringLa URL o ruta de navegación tal como aparece bajo el título.
snippetstringEl texto que aparece bajo el título.
datestringFecha que aparece junto al snippet, tal como está escrita en la página. Opcional.
sitelinksarrayEnlaces adicionales que aparecen bajo el resultado, cada uno con title y link. Opcional.

¿Cómo se devuelve el AI Overview?

ai_overview solo está presente cuando Google muestra un AI Overview para esa consulta y ese lugar. Muchas consultas no tienen ninguno.

CampoTipoDescripción
ai_overview.textstringEl texto del AI Overview tal como aparece en la página.
ai_overview.references[].indexintegerOrden de la fuente en el overview.
ai_overview.references[].titlestringTítulo de la página citada.
ai_overview.references[].linkstringURL de la página citada.
ai_overview.references[].sourcestringNombre del sitio, tal como aparece.

¿Qué contienen ads y people_also_ask?

CampoTipoDescripción
ads[].positionintegerOrden dentro de su bloque.
ads[].blockstringtop o bottom de la página.
ads[].title, link, displayed_linkstringTitular, URL de destino y URL mostrada del anuncio.
ads[].descriptionstringTexto del anuncio.
people_also_ask[].questionstringLa pregunta tal como se muestra.
people_also_ask[].snippetstringEl texto de la respuesta que se muestra al abrir la pregunta.
people_also_ask[].title, linkstringTítulo y URL de la página de la que procede la respuesta.

¿Qué otros bloques de Google pueden aparecer?

BloqueCamposQué es
local_resultsposition, title, address, rating, reviews, typeEl local pack: negocios en un mapa para consultas con intención de lugar.
knowledge_graphtitle, type, description, source.name, source.linkEl panel de conocimiento sobre una persona, lugar, empresa o cosa.
top_storiestitle, link, source, dateArtículos de noticias mostrados en un carrusel.
inline_videostitle, link, source, durationResultados de vídeo mostrados dentro de los resultados web.
shopping_resultsposition, title, price, source, linkFichas de producto mostradas dentro de los resultados web.
related_searchesqueryBúsquedas sugeridas al final de la página.
paginationcurrent, next_pageNúmero de página actual y el siguiente, cuando lo hay.

¿Qué devuelven los otros motores?

Cada vertical mantiene el mismo marco y añade su propio array. En Google Maps, local_results es más completo que el local pack de una búsqueda web.

engineArray principalCampos
google_newsnews_resultsposition, title, link, source, date, snippet, thumbnail
google_imagesimages_resultsposition, title, original, original_width, original_height, thumbnail, source, link
google_mapslocal_resultsposition, title, place_id, address, phone, website, rating, reviews, type, hours, gps_coordinates.latitude, gps_coordinates.longitude
google_shoppingshopping_resultsposition, title, price, extracted_price, currency, source, link, delivery, rating, reviews
bingorganic_results, related_searchesLos mismos campos que los resultados orgánicos de Google

¿Cómo se escriben los precios, las valoraciones y las fechas?

Los valores conservan la forma que usó la página siempre que la página los escribiera como texto. price es una string con su símbolo de moneda, como £299.00, y Google Shopping añade extracted_price como número y currency como código. rating es un número y reviews un entero. Las fechas como date se quedan tal como están escritas en la página, por ejemplo 12 Oct 2026 o 3 days ago, así que conviértelas en tu propio código si necesitas un timestamp.

¿Cómo construyo un ranking global entre varias páginas?

Guarda el número de página con cada resultado. position da el orden dentro de su bloque en una página, y search_parameters.page te dice de qué página se trata. Unos 10 resultados orgánicos por página, tal como Google los sirve desde que dejó de respetar num=100 en septiembre de 2025; cada página adicional es un crédito más.

Para el rank tracking, la mayoría de los equipos guardan link, position, page, gl, location, device y created_at por keyword y día. Con eso basta para graficar un ranking y explicar un cambio por lugar o dispositivo. Consulta rank tracking para ver el método completo.

Preguntas sobre el formato de respuesta

¿El nombre de los campos es estable?

Sí, dentro de la versión 1. Se pueden añadir bloques o campos nuevos, así que ignora las claves que no conozcas. Eliminar o renombrar un campo vendría con una nueva versión en la ruta, como /api/v2/.

¿Puedo obtener el HTML crudo de la página?

No. La versión 1 solo devuelve JSON procesado. Los bloques procesados cubren lo que necesitan la mayoría de las herramientas: resultados, anuncios, preguntas, el AI Overview, el local pack y el knowledge panel.

¿Por qué total_results difiere de lo que conté?

Es la estimación que muestra el motor, no un recuento de los resultados por los que puedes paginar. Las páginas se acaban mucho antes de ese número; usa pagination.next_page para saber si existe otra página.

¿Una respuesta sin resultados orgánicos cuesta un crédito?

Sí, si la búsqueda se completó: una página vacía sigue siendo un resultado. Solo los errores son gratis. 1 crédito = 1 consulta correcta, que devuelve una página de resultados en cualquier motor compatible. Una consulta fallida no se cobra.

Desde 0,30 US$/1K búsquedas · sin KYC

Obtener una clave API