# Formato della risposta della SERP API: ogni blocco e campo del JSON

> La risposta della SERP API di SerpCrypto, campo per campo: search_metadata, organic_results, ai_overview, people_also_ask, local pack, ads e array per engine.

- URL: https://serpcrypto.com/it/docs/response/
- Ultimo aggiornamento: 2026-10-22
- Editore: SerpCrypto (https://serpcrypto.com)

Un frame su ogni engine, poi un blocco per ogni parte della pagina dei risultati. Questa pagina elenca ogni blocco, i suoi campi e i loro tipi. Negli esempi, ID, conteggi, prezzi e risultati sono illustrativi.

**Risposta rapida — Cosa contiene una risposta della SERP API di SerpCrypto?**

Ogni risposta **SerpCrypto** è un oggetto JSON: `search_metadata` (stato, engine, crediti usati), `search_parameters` (le impostazioni applicate), `search_information`, poi un blocco per ogni parte della pagina dei risultati, come `organic_results`, `ai_overview`, `people_also_ask` o `local_results`. Le parti assenti sono semplicemente mancanti. Una pagina costa 1 credito, da 0,30 USD/1K ricerche; paghi in criptovalute, senza KYC.

## Come appare una risposta completa di Google?

L'esempio qui sotto è una ricerca Google per `standing desk` nel Regno Unito, ridotta a un elemento per array. Una risposta reale ha circa dieci risultati organici e ogni altro blocco che la pagina ha mostrato per quella query, località e dispositivo.

*engine=google, gl=gb: valori ridotti, illustrativi*

```json
{
  "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 }
}
```

## Perché mancano alcuni blocchi dalla mia risposta?

Perché la pagina dei risultati non li mostrava. Google decide per query, località e dispositivo se mostrare ads, un AI Overview, un local pack o top stories. SerpCrypto restituisce ciò che la pagina mostrava e omette il resto, invece di inviare segnaposto vuoti.

Leggi ogni blocco con un valore di default, come nelle righe Python qui sotto. La stessa regola vale dentro un blocco: i campi opzionali come `date` o `sitelinks` compaiono solo sui risultati che li hanno.

*Python: leggi i blocchi opzionali in sicurezza*

```python
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")
```

## Cosa c'è in search_metadata?

| Campo | Tipo | Descrizione |
| --- | --- | --- |
| `id` | string | Identificatore della ricerca. Citarlo quando contatti il supporto. |
| `status` | string | `success` su una risposta 200. |
| `engine` | string | L'engine che ha eseguito la ricerca. |
| `created_at` | string | Ora della ricerca, ISO 8601 in UTC. |
| `credits_used` | integer | Crediti addebitati per questa ricerca: 1 in caso di successo. |

## Cosa sono search_parameters e search_information?

Salva `search_parameters` insieme ai tuoi risultati: registra esattamente da quale paese, lingua, luogo e dispositivo proviene un posizionamento.

| Campo | Tipo | Descrizione |
| --- | --- | --- |
| `search_parameters` | object | I parametri applicati, con i valori predefiniti inseriti: `engine`, `q`, `gl`, `hl`, `location`, `google_domain`, `device`, `page` e gli altri che hai inviato. |
| `search_information.total_results` | integer | Il numero di risultati visualizzato dal motore, quando ne mostra uno. Una stima, non un dato esatto. |
| `search_information.query_displayed` | string | La query così come l'ha mostrata la pagina dei risultati. |

## Quali campi ha organic_results?

I risultati organici sono i risultati web non a pagamento. Su Bing, `organic_results` ha la stessa struttura.

| Campo | Tipo | Descrizione |
| --- | --- | --- |
| `position` | integer | Ordine del risultato in questo blocco su questa pagina, a partire da 1. |
| `title` | string | Il titolo del link blu. |
| `link` | string | L'URL del risultato. |
| `displayed_link` | string | L'URL o il breadcrumb come mostrato sotto il titolo. |
| `snippet` | string | Il testo mostrato sotto il titolo. |
| `date` | string | Data mostrata accanto allo snippet, così come scritta sulla pagina. Facoltativa. |
| `sitelinks` | array | Link aggiuntivi mostrati sotto il risultato, ciascuno con `title` e `link`. Facoltativi. |

## Come viene restituito l'AI Overview?

`ai_overview` è presente solo quando Google mostra un AI Overview per quella query e quel luogo. Molte query non ne hanno nessuno.

| Campo | Tipo | Descrizione |
| --- | --- | --- |
| `ai_overview.text` | string | Il testo dell'AI Overview così come mostrato sulla pagina. |
| `ai_overview.references[].index` | integer | Ordine della fonte nell'overview. |
| `ai_overview.references[].title` | string | Titolo della pagina citata. |
| `ai_overview.references[].link` | string | URL della pagina citata. |
| `ai_overview.references[].source` | string | Nome del sito, come mostrato. |

## Cosa contengono ads e people_also_ask?

| Campo | Tipo | Descrizione |
| --- | --- | --- |
| `ads[].position` | integer | Ordine all'interno del suo blocco. |
| `ads[].block` | string | `top` o `bottom` della pagina. |
| `ads[].title`, `link`, `displayed_link` | string | Titolo, URL di destinazione e URL mostrato dell'annuncio. |
| `ads[].description` | string | Testo dell'annuncio. |
| `people_also_ask[].question` | string | La domanda come viene mostrata. |
| `people_also_ask[].snippet` | string | Il testo della risposta mostrato quando si apre la domanda. |
| `people_also_ask[].title`, `link` | string | Titolo e URL della pagina da cui proviene la risposta. |

## Quali altri blocchi di Google possono comparire?

| Blocco | Campi | Cos'è |
| --- | --- | --- |
| `local_results` | `position`, `title`, `address`, `rating`, `reviews`, `type` | Il local pack: attività commerciali su una mappa per query con intento di località. |
| `knowledge_graph` | `title`, `type`, `description`, `source.name`, `source.link` | Il knowledge panel su una persona, un luogo, un'azienda o una cosa. |
| `top_stories` | `title`, `link`, `source`, `date` | Articoli di notizie mostrati in un carosello. |
| `inline_videos` | `title`, `link`, `source`, `duration` | Risultati video mostrati all'interno dei risultati web. |
| `shopping_results` | `position`, `title`, `price`, `source`, `link` | Annunci di prodotti mostrati all'interno dei risultati web. |
| `related_searches` | `query` | Ricerche suggerite in fondo alla pagina. |
| `pagination` | `current`, `next_page` | Numero della pagina corrente e quello della successiva, quando esiste. |

## Cosa restituiscono gli altri motori?

Ogni verticale mantiene la stessa struttura e aggiunge un proprio array. Su Google Maps, `local_results` è più ricco del local pack di una ricerca web.

| `engine` | Array principale | Campi |
| --- | --- | --- |
| `google_news` | `news_results` | `position`, `title`, `link`, `source`, `date`, `snippet`, `thumbnail` |
| `google_images` | `images_results` | `position`, `title`, `original`, `original_width`, `original_height`, `thumbnail`, `source`, `link` |
| `google_maps` | `local_results` | `position`, `title`, `place_id`, `address`, `phone`, `website`, `rating`, `reviews`, `type`, `hours`, `gps_coordinates.latitude`, `gps_coordinates.longitude` |
| `google_shopping` | `shopping_results` | `position`, `title`, `price`, `extracted_price`, `currency`, `source`, `link`, `delivery`, `rating`, `reviews` |
| `bing` | `organic_results`, `related_searches` | Gli stessi campi dei risultati organici di Google |

## Come vengono tipizzati prezzi, valutazioni e date?

I valori mantengono la forma usata dalla pagina quando questa li ha scritti come testo. `price` è una stringa con il simbolo della valuta, ad esempio `£299.00`, e Google Shopping aggiunge `extracted_price` come numero con `currency` come codice. `rating` è un numero e `reviews` un intero. Le date come `date` restano come scritte sulla pagina, per esempio `12 Oct 2026` o `3 days ago`, quindi analizzale nel tuo codice se ti serve un timestamp.

## Come costruisco una posizione complessiva su più pagine?

Salva il numero di pagina insieme a ogni risultato. `position` dà l'ordine all'interno del suo blocco su una pagina, e `search_parameters.page` ti dice di quale pagina si tratta. Circa 10 risultati organici per pagina, come Google serve da quando ha smesso di rispettare num=100 a settembre 2025; ogni pagina in più costa un altro credito.

Per il rank tracking, la maggior parte dei team conserva `link`, `position`, `page`, `gl`, `location`, `device` e `created_at` per keyword e per giorno. È sufficiente per tracciare un grafico del posizionamento e spiegare una variazione per luogo o dispositivo. Vedi [rank tracking](https://serpcrypto.com/it/use-cases/rank-tracking/) per il metodo completo.

## Domande sul formato della risposta

### La denominazione dei campi è stabile?

Sì, all'interno della versione 1. Si possono aggiungere nuovi blocchi o campi, quindi ignora le chiavi che non conosci. La rimozione o la rinomina di un campo arriverebbe con una nuova versione nel path, come `/api/v2/`.

### Posso ottenere l'HTML grezzo della pagina?

No. La versione 1 restituisce solo JSON analizzato. I blocchi analizzati coprono ciò che serve alla maggior parte degli strumenti: risultati, annunci, domande, l'AI Overview, il local pack e il knowledge panel.

### Perché total_results differisce da quello che avevo contato?

È la stima che stampa il motore, non un conteggio dei risultati su cui puoi sfogliare. Le pagine finiscono molto prima di quel numero; usa `pagination.next_page` per sapere se esiste un'altra pagina.

### Una risposta senza risultati organici costa un credito?

Sì, se la ricerca è andata a buon fine: una pagina vuota è comunque un risultato. Solo gli errori sono gratuiti. 1 credito = 1 richiesta di ricerca andata a buon fine, che restituisce una pagina di risultati su qualsiasi motore supportato. Una richiesta non riuscita non viene addebitata.

---

SerpCrypto: SerpCrypto è un'API SERP per sviluppatori e agenti AI che restituisce i risultati di ricerca di Google e Bing in JSON, con pagamento in criptovalute e senza caricare documenti d'identità. I crediti di ricerca prepagati a partire da 0,30 USD/1K ricerche non scadono mai. Senza KYC — niente documento, niente selfie, niente documenti. Paghi in criptovalute.
