# Format respons SERP API: setiap blok dan field pada JSON

> Jawaban SERP API SerpCrypto, field per field: search_metadata, organic_results, ai_overview, people_also_ask, local pack, ads, dan array per engine.

- URL: https://serpcrypto.com/id/docs/response/
- Terakhir diperbarui: 2026-10-22
- Penerbit: SerpCrypto (https://serpcrypto.com)

Satu kerangka di setiap engine, lalu satu blok per bagian halaman hasil. Halaman ini mencantumkan setiap blok, field-nya, dan tipenya. Dalam contoh, ID, jumlah, harga, dan hasil bersifat ilustratif.

**Jawaban singkat — Apa saja isi respons SERP API SerpCrypto?**

Setiap respons **SerpCrypto** adalah satu objek JSON: `search_metadata` (status, engine, kredit yang terpakai), `search_parameters` (pengaturan yang diterapkan), `search_information`, lalu satu blok per bagian halaman hasil, seperti `organic_results`, `ai_overview`, `people_also_ask`, atau `local_results`. Bagian yang tidak ada memang tidak disertakan. Satu halaman berbiaya 1 kredit, mulai dari US$0,30/1K pencarian; bayar dengan kripto, tanpa KYC.

## Seperti apa respons Google lengkap?

Contoh di bawah adalah pencarian Google untuk `standing desk` di Inggris, dipersingkat menjadi satu item per array. Jawaban sungguhan berisi sekitar sepuluh hasil organik dan setiap blok lain yang ditampilkan halaman untuk kueri, lokasi, dan device tersebut.

*engine=google, gl=gb: nilai dipersingkat, ilustratif*

```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 }
}
```

## Mengapa beberapa blok tidak ada di respons saya?

Karena halaman hasil tidak menampilkannya. Google memutuskan per kueri, lokasi, dan device apakah akan menampilkan iklan, AI Overview, local pack, atau top stories. SerpCrypto mengembalikan apa yang ditampilkan halaman dan tidak menyertakan sisanya, bukan mengirim placeholder kosong.

Baca setiap blok dengan nilai default, seperti pada baris Python di bawah. Aturan yang sama berlaku di dalam blok: field opsional seperti `date` atau `sitelinks` hanya muncul pada hasil yang memilikinya.

*Python: membaca blok opsional dengan aman*

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

## Apa isi search_metadata?

| Field | Tipe | Deskripsi |
| --- | --- | --- |
| `id` | string | Identifier pencarian. Sertakan saat menghubungi support. |
| `status` | string | `success` pada respons 200. |
| `engine` | string | Engine yang menjalankan pencarian. |
| `created_at` | string | Waktu pencarian, ISO 8601 dalam UTC. |
| `credits_used` | integer | Kredit yang terpakai untuk pencarian ini: 1 jika berhasil. |

## Apa itu search_parameters dan search_information?

Simpan `search_parameters` bersama hasil Anda: field ini mencatat persis dari negara, bahasa, lokasi, dan perangkat mana sebuah peringkat berasal.

| Field | Tipe | Deskripsi |
| --- | --- | --- |
| `search_parameters` | object | Parameter yang diterapkan, dengan nilai default terisi: `engine`, `q`, `gl`, `hl`, `location`, `google_domain`, `device`, `page` dan parameter lain yang Anda kirim. |
| `search_information.total_results` | integer | Jumlah hasil yang ditampilkan mesin pencari, jika memang ditampilkan. Perkiraan, bukan angka pasti. |
| `search_information.query_displayed` | string | Kueri seperti yang ditampilkan halaman hasil pencarian. |

## Field apa saja yang ada di organic_results?

Organic results adalah hasil web yang tidak berbayar. Di Bing, `organic_results` memiliki bentuk yang sama.

| Field | Tipe | Deskripsi |
| --- | --- | --- |
| `position` | integer | Urutan hasil dalam blok ini di halaman ini, dimulai dari 1. |
| `title` | string | Judul blue-link. |
| `link` | string | URL hasil. |
| `displayed_link` | string | URL atau breadcrumb seperti yang ditampilkan di bawah judul. |
| `snippet` | string | Teks yang ditampilkan di bawah judul. |
| `date` | string | Tanggal yang ditampilkan di samping snippet, sesuai yang tertulis di halaman. Opsional. |
| `sitelinks` | array | Tautan tambahan yang ditampilkan di bawah hasil, masing-masing dengan `title` dan `link`. Opsional. |

## Bagaimana AI Overview dikembalikan?

`ai_overview` hanya ada saat Google menampilkan AI Overview untuk kueri dan lokasi tersebut. Banyak kueri tidak memilikinya.

| Field | Tipe | Deskripsi |
| --- | --- | --- |
| `ai_overview.text` | string | Teks AI Overview seperti yang ditampilkan di halaman. |
| `ai_overview.references[].index` | integer | Urutan sumber dalam overview. |
| `ai_overview.references[].title` | string | Judul halaman yang dikutip. |
| `ai_overview.references[].link` | string | URL halaman yang dikutip. |
| `ai_overview.references[].source` | string | Nama situs, seperti yang ditampilkan. |

## Apa saja isi ads dan people_also_ask?

| Field | Tipe | Deskripsi |
| --- | --- | --- |
| `ads[].position` | integer | Urutan dalam bloknya. |
| `ads[].block` | string | `top` atau `bottom` halaman. |
| `ads[].title`, `link`, `displayed_link` | string | Judul, URL landing, dan URL yang ditampilkan dari iklan. |
| `ads[].description` | string | Teks iklan. |
| `people_also_ask[].question` | string | Pertanyaan seperti yang ditampilkan. |
| `people_also_ask[].snippet` | string | Teks jawaban yang ditampilkan saat pertanyaan dibuka. |
| `people_also_ask[].title`, `link` | string | Judul dan URL halaman asal jawaban tersebut. |

## Blok Google lain apa saja yang bisa muncul?

| Blok | Field | Apa itu |
| --- | --- | --- |
| `local_results` | `position`, `title`, `address`, `rating`, `reviews`, `type` | Local pack: bisnis pada peta untuk kueri dengan maksud lokasi. |
| `knowledge_graph` | `title`, `type`, `description`, `source.name`, `source.link` | Knowledge panel tentang seseorang, tempat, perusahaan, atau suatu hal. |
| `top_stories` | `title`, `link`, `source`, `date` | Artikel berita yang ditampilkan dalam carousel. |
| `inline_videos` | `title`, `link`, `source`, `duration` | Hasil video yang ditampilkan di dalam hasil web. |
| `shopping_results` | `position`, `title`, `price`, `source`, `link` | Daftar produk yang ditampilkan di dalam hasil web. |
| `related_searches` | `query` | Pencarian yang disarankan di bagian bawah halaman. |
| `pagination` | `current`, `next_page` | Nomor halaman saat ini dan halaman berikutnya, jika ada. |

## Apa yang dikembalikan mesin lainnya?

Setiap vertical memakai kerangka yang sama dan menambahkan array-nya sendiri. Di Google Maps, `local_results` lebih kaya daripada local pack pada pencarian web.

| `engine` | Array utama | Field |
| --- | --- | --- |
| `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` | Field yang sama seperti hasil organik Google |

## Bagaimana harga, rating, dan tanggal ditulis?

Nilai mempertahankan bentuk yang dipakai halaman tersebut setiap kali halaman menuliskannya sebagai teks. `price` adalah string dengan simbol mata uangnya, seperti `£299.00`, dan Google Shopping menambahkan `extracted_price` sebagai angka dengan `currency` sebagai kode. `rating` adalah angka dan `reviews` adalah integer. Tanggal seperti `date` tetap seperti yang tertulis di halaman, misalnya `12 Oct 2026` atau `3 days ago`, jadi parse sendiri di kode Anda jika membutuhkan timestamp.

## Bagaimana cara membuat peringkat keseluruhan di beberapa halaman?

Simpan nomor halaman bersama setiap hasil. `position` memberikan urutan di dalam bloknya pada satu halaman, dan `search_parameters.page` memberi tahu halaman mana itu. Sekitar 10 hasil organik per halaman, sebagaimana yang disajikan Google sejak berhenti mematuhi num=100 pada September 2025; setiap halaman tambahan dikenai satu kredit lagi.

Untuk rank tracking, sebagian besar tim menyimpan `link`, `position`, `page`, `gl`, `location`, `device`, dan `created_at` per keyword dan per hari. Itu cukup untuk menggambarkan peringkat dan menjelaskan perubahan berdasarkan lokasi atau perangkat. Lihat [rank tracking](https://serpcrypto.com/id/use-cases/rank-tracking/) untuk metode lengkapnya.

## Pertanyaan tentang format respons

### Apakah penamaan field stabil?

Ya, dalam versi 1. Blok atau field baru bisa ditambahkan, jadi abaikan key yang tidak Anda kenal. Penghapusan atau penggantian nama field akan disertai versi baru di path, seperti `/api/v2/`.

### Bisakah saya mendapatkan HTML mentah halaman?

Tidak. Versi 1 hanya mengembalikan JSON hasil parsing. Blok hasil parsing mencakup kebutuhan sebagian besar tool: hasil, iklan, pertanyaan, AI Overview, local pack, dan knowledge panel.

### Mengapa total_results berbeda dari yang saya hitung?

Itu adalah estimasi yang dicetak mesin pencari, bukan jumlah hasil yang bisa Anda telusuri halaman demi halaman. Halaman berhenti jauh sebelum angka itu; gunakan `pagination.next_page` untuk mengetahui apakah masih ada halaman berikutnya.

### Apakah respons tanpa hasil organik tetap memotong satu kredit?

Ya, jika pencarian berhasil: halaman kosong tetap dihitung sebagai hasil. Hanya error yang gratis. 1 kredit = 1 permintaan pencarian yang berhasil, yang mengembalikan satu halaman hasil di mesin mana pun yang didukung. Permintaan yang gagal tidak dikenai biaya.

---

SerpCrypto: SerpCrypto adalah SERP API untuk developer dan AI agent yang mengembalikan hasil pencarian Google dan Bing dalam format JSON, dibayar dengan kripto tanpa unggah identitas. Kredit pencarian prabayar mulai dari US$0,30/1K pencarian tidak pernah kedaluwarsa. Tanpa KYC — tanpa ID, tanpa selfie, tanpa dokumen. Bayar dengan kripto.
