# SERP API referansı: GET /search ve GET /credits

> SerpCrypto SERP API referansı: GET /search parametreleri, motorlar, varsayılanlar, yanıt blokları, hata kodları ve GET /credits, curl, Python ve Node.js ile.

- URL: https://serpcrypto.com/tr/docs/search/
- Son güncelleme: 2026-10-22
- Yayıncı: SerpCrypto (https://serpcrypto.com)

SerpCrypto API'sinin sürüm 1'deki her parametresi, varsayılanı ve hata kodu. Temel URL: `https://serpcrypto.com/api/v1`. Tüm istekler HTTPS kullanır; tüm yanıtlar UTF-8 kodlamalı JSON'dur.

**Hızlı yanıt — SerpCrypto arama endpoint'i hangi parametreleri alır?**

`GET https://serpcrypto.com/api/v1/search` bir zorunlu parametre, `q` ve dokuz isteğe bağlı parametre alır: `engine`, `gl`, `hl`, `location`, `google_domain`, `device`, `page`, `safe` ve `period`. **SerpCrypto** JSON döndürür ve 6 motorun tamamında başarılı arama başına 1 kredi ücretlendirir; hatalar ücretsizdir. Paketler, KYC olmadan kripto ile ödenen 10.000 arama için $7,50 tutarından başlar.

## Kimlik doğrulamayı nasıl yaparım?

Anahtarınızı iki yoldan biriyle gönderin. Önerilen yol `Authorization: Bearer YOUR_KEY` header'ıdır. Diğeri ise, bir tarayıcı sekmesinde hızlı bir test için kullanışlı olan `api_key=YOUR_KEY` sorgu parametresidir.

Eksik, yanlış veya iptal edilmiş bir anahtar `401 invalid_api_key` alır ve hiçbir ücret doğurmaz. Dashboard'ınızdan istediğiniz zaman oluşturup iptal edebileceğiniz API anahtarları, böylece her betiğe veya sunucuya kendi anahtarını verebilir ve diğerlerine dokunmadan birini iptal edebilirsiniz.

## Arama yapın

`GET /api/v1/search`

Seçilen motorda tek bir arama yapar ve sonuçlar sayfasını JSON olarak döndürür. Başarılı bir arama, hangi motor olursa olsun 1 kredi harcar; bir hata hiç harcamaz. Parametreler, URL olarak kodlanmış sorgu dizesine gider. Örnek, Google'dan Austin, Texas'taki kahve kavurucularını ister; ID'ler, sayımlar ve sonuçlar örnektir.

Kimlik doğrulama: `Authorization: Bearer API_KEY` başlığında API anahtarı.

**Parametreler**

| Ad | Konum | Tür | Zorunlu | Açıklama |
| --- | --- | --- | --- | --- |
| `q` | query | string | Evet | Arama sorgusu, bir kişinin yazacağı gibi. Tırnak işaretleri veya `site:` gibi arama operatörleri sorgunun parçasıdır. |
| `engine` | query | string | Hayır | `google` (varsayılan), `google_news`, `google_images`, `google_maps`, `google_shopping` veya `bing`. |
| `gl` | query | string | Hayır | Sonuçların ülkesi: küçük harfle ISO 3166-1 alpha-2 kodu, örneğin `us`, `de` veya `br`. Varsayılan `us`. |
| `hl` | query | string | Hayır | Arayüz dili, örneğin `en`, `de` veya `pt-BR`. Varsayılan `en`. |
| `location` | query | string | Hayır | `City, Region, Country` biçiminde yazılan şehir düzeyinde konum, örneğin `Austin, Texas, United States`. [Konumlar](https://serpcrypto.com/tr/docs/locations/) bölümüne bakın. |
| `google_domain` | query | string | Hayır | Aranacak Google alanı, örneğin `google.de`. Varsayılan: `gl` ülkesinin alanı. `engine=bing` olduğunda yok sayılır. |
| `device` | query | string | Hayır | `desktop` (varsayılan) veya `mobile`. |
| `page` | query | integer | Hayır | Sonuç sayfası 1 (varsayılan) ile 10 arası. Her sayfa ayrı bir aramadır ve 1 kredi kullanır. |
| `safe` | query | string | Hayır | `active` açık içerikli sonuçları filtreler; `off` (varsayılan) filtrelemez. |
| `period` | query | string | Hayır | Yalnızca son bir saat (`h`), gün (`d`), hafta (`w`), ay (`m`) veya yıl (`y`) içindeki sonuçlar. |
| `api_key` | query | string | Hayır | `Authorization` header'ını göndermiyorsanız anahtarınız. |

**Yanıt** `200`

```json
{
  "search_metadata": {
    "id": "srch_7f3a9c2e41b8",
    "status": "success",
    "engine": "google",
    "created_at": "2026-10-22T09:14:05Z",
    "credits_used": 1
  },
  "search_parameters": {
    "engine": "google",
    "q": "coffee roasters",
    "gl": "us",
    "hl": "en",
    "location": "Austin, Texas, United States",
    "google_domain": "google.com",
    "device": "desktop",
    "page": 1
  },
  "search_information": {
    "total_results": 18600000,
    "query_displayed": "coffee roasters"
  },
  "local_results": [
    {
      "position": 1,
      "title": "Example Coffee Roasters",
      "address": "123 Example St, Austin, TX",
      "rating": 4.7,
      "reviews": 312,
      "type": "Coffee roasters"
    }
  ],
  "organic_results": [
    {
      "position": 1,
      "title": "The 12 best coffee roasters in Austin",
      "link": "https://www.example.com/austin/coffee-roasters",
      "displayed_link": "www.example.com › austin › coffee",
      "snippet": "From light Nordic roasts to dark espresso blends, these local roasters…",
      "date": "Sep 30, 2026"
    },
    {
      "position": 2,
      "title": "Example Roasting Co. | Fresh beans, roasted in Austin",
      "link": "https://www.example.org/",
      "displayed_link": "www.example.org",
      "snippet": "Small-batch coffee roasted every weekday and shipped the same day…"
    }
  ],
  "people_also_ask": [
    {
      "question": "What is the oldest coffee roaster in Austin?",
      "snippet": "…",
      "title": "Austin coffee history",
      "link": "https://www.example.net/austin-coffee-history"
    }
  ],
  "related_searches": [
    {
      "query": "coffee roasters near me"
    },
    {
      "query": "coffee roasters austin wholesale"
    }
  ],
  "pagination": {
    "current": 1,
    "next_page": 2
  }
}
```

*curl*

```bash
curl -sG "https://serpcrypto.com/api/v1/search" \
  -H "Authorization: Bearer $SERPCRYPTO_API_KEY" \
  --data-urlencode "q=coffee roasters" \
  --data-urlencode "location=Austin, Texas, United States" \
  -d gl=us -d hl=en -d device=desktop
```

*Python*

```python
import os

import requests

r = requests.get(
    "https://serpcrypto.com/api/v1/search",
    params={
        "q": "coffee roasters",
        "location": "Austin, Texas, United States",
        "gl": "us",
        "hl": "en",
    },
    headers={"Authorization": "Bearer " + os.environ["SERPCRYPTO_API_KEY"]},
    timeout=60,
)
r.raise_for_status()
print(r.json()["organic_results"][0]["link"])
```

*Node.js*

```javascript
const params = new URLSearchParams({
  q: "coffee roasters",
  location: "Austin, Texas, United States",
  gl: "us",
  hl: "en",
});
const res = await fetch("https://serpcrypto.com/api/v1/search?" + params, {
  headers: { Authorization: "Bearer " + process.env.SERPCRYPTO_API_KEY },
});
const data = await res.json();
console.log(data.organic_results?.[0]?.link);
```

## Hangi engine değerleri var ve her biri ne döndürür?

Çerçeve (`search_metadata`, `search_parameters`, `search_information`) her engine'de aynıdır. Bir blok yalnızca sayfa onu gösterdiğinde görünür.

| `engine` | Kaynak | Yanıttaki ana bloklar |
| --- | --- | --- |
| `google` | Google Search | `ai_overview`, `organic_results`, `ads`, `people_also_ask`, `local_results`, `knowledge_graph`, `top_stories`, `inline_videos`, `shopping_results`, `related_searches`, `pagination` |
| `google_news` | Google News | `news_results`: başlık, bağlantı, kaynak, tarih, snippet, küçük resim |
| `google_images` | Google Images | `images_results`: orijinal URL ve boyut, küçük resim, kaynak sayfa |
| `google_maps` | Google Maps | `local_results`: ad, adres, telefon, web sitesi, puan, yorumlar, kategori, çalışma saatleri, koordinatlar |
| `google_shopping` | Google Shopping | `shopping_results`: başlık, fiyat, çıkarılan fiyat, para birimi, satıcı, teslimat, puan |
| `bing` | Bing | `organic_results`, `related_searches` |

## Kredilerinizi okuyun

`GET /api/v1/credits`

Hesabınızda kalan kredileri, UTC gece yarısından bu yana kullanılan kredileri ve hesabınızın aynı anda çalıştırabileceği arama sayısını döndürür. Bu çağrı ücretsizdir. Aşağıdaki değerler örnektir.

Kimlik doğrulama: `Authorization: Bearer API_KEY` başlığında API anahtarı.

**Yanıt** `200`

```json
{
  "credits_remaining": 84210,
  "credits_used_today": 1290,
  "concurrency_limit": 10
}
```

*curl*

```bash
curl -s "https://serpcrypto.com/api/v1/credits" \
  -H "Authorization: Bearer $SERPCRYPTO_API_KEY"
```

*Python*

```python
import os

import requests

r = requests.get(
    "https://serpcrypto.com/api/v1/credits",
    headers={"Authorization": "Bearer " + os.environ["SERPCRYPTO_API_KEY"]},
    timeout=30,
)
r.raise_for_status()
print(r.json()["credits_remaining"])
```

*Node.js*

```javascript
const res = await fetch("https://serpcrypto.com/api/v1/credits", {
  headers: { Authorization: "Bearer " + process.env.SERPCRYPTO_API_KEY },
});
const { credits_remaining } = await res.json();
console.log(credits_remaining);
```

## API hangi hataları döndürebilir?

Her hatanın body'si `{"error": {"code": "…", "message": "…"}}` şeklindedir. [Hatalar sayfası](https://serpcrypto.com/tr/docs/errors/) her birini açıklar ve yeniden deneme kodunu gösterir.

| HTTP | `code` | Ne zaman olur | Ücretlendirilir |
| --- | --- | --- | --- |
| 400 | `invalid_parameter` | Zorunlu bir parameter eksik veya bir değer izin verilen listenin dışında | Hayır |
| 401 | `invalid_api_key` | Anahtar eksik, yanlış veya iptal edilmiş | Hayır |
| 402 | `insufficient_credits` | Hesabınızda kalan kredi yok | Hayır |
| 429 | `concurrency_limit` | Hesabınızda aynı anda çalışan çok fazla arama var | Hayır |
| 502 | `search_failed` | Bu istek için engine veya toplama başarısız oldu; yeniden deneyin | Hayır |
| 504 | `search_timeout` | Zamanında yanıt yok; yeniden deneyin | Hayır |

## Tam olarak ne ücretlendirilir?

- **Bir başarılı arama = bir kredi**, Google Maps ve Google Shopping dahil her engine'de.
- **Her sonuç sayfası bir aramadır.** Google'ın Eylül 2025'te num=100 değerini dikkate almayı bırakmasından bu yana sunduğu gibi sayfa başına yaklaşık 10 organik sonuç; her ek sayfa bir kredi daha.
- **Hatalar ücretsizdir:** HTTP durumu 200 dışında olan her yanıt kredi kullanmaz.
- **Kredilerinizi okumak ücretsizdir.**

Ön ödemeli arama kredileri hiçbir zaman sona ermez: kullanılmayan aramalar siz kullanana kadar hesabınızda kalır. Pack'ler en büyüğünde 10.000 arama için $7,50 ile $0,30/1K arama arasında değişir; bkz. [fiyatlandırma](https://serpcrypto.com/tr/pricing/).

## Sorguyu nasıl kodlamalıyım?

`q` değerini herhangi bir query-string değeri gibi URL-encoded gönderin: boşluk `%20` veya `+` olur ve aksanlı harfler UTF-8 olarak kodlanır. curl bunu `--data-urlencode` ile, Python `requests` ve `httpx` bunu `params=` ile yapar, Node.js ise `URLSearchParams` ile yapar.

Sorguyu tam olarak bir kişinin arama kutusuna yazacağı gibi yazın. Tırnak işaretleri, eksi işareti veya `site:` `q` içinde kalır; engine bunları bir ziyaretçi için uygulayacağı gibi uygulamaya karar verir.

## API sürümlendirilmiş mi?

Evet. Sürüm path'in bir parçasıdır: `/api/v1/`. Sürüm 1 yanıtlarında yeni field'lar veya bloklar görünebilir; bu yüzden kodunuz bilmediği key'leri yok saymalıdır. Bir field'ın kaldırılması veya yeniden adlandırılması, `v1` üzerinde bir değişiklik olarak değil, path'te yeni bir sürümle gelir.

## API referansı soruları

### JSON gövdesiyle POST isteği gönderebilir miyim?

Sürüm 1'de hayır: her iki endpoint de parametreleri sorgu dizesinde alan GET istekleri kabul eder. Bu sayede her çağrıyı curl veya bir tarayıcıyla kolayca yeniden üretebilir ve gövde olmadan kolayca günlüğe kaydedebilirsiniz.

### Bir arama kaç sonuç döndürür?

Google'ın Eylül 2025'te num=100 değerini dikkate almayı bırakmasından bu yana sunduğu gibi sayfa başına yaklaşık 10 organik sonuç; her ek sayfa bir kredi daha. 30 sonuç toplamak için `page=1`, `page=2` ve `page=3` isteyin: üç arama, üç kredi.

### Kredilerim tükendiğinde ne olur?

Bir sonraki arama `402 insufficient_credits` döndürür ve hiçbir şey harcamaz. [Fiyatlandırma sayfasından](https://serpcrypto.com/tr/pricing/) bakiyenizle başka bir pack satın alın; API anahtarınız çalışmaya devam eder ve aramalar hemen sürer.

### Aynı anahtarı birden fazla sunucudan kullanabilir miyim?

Evet. Bir anahtar IP adresine bağlı değildir. Sınırlanan şey, hesapta aynı anda çalışan arama sayısıdır: `GET /credits` içindeki `concurrency_limit` bu rakamı verir.

---

SerpCrypto: SerpCrypto, Google ve Bing sonuçlarını JSON olarak döndüren, geliştiriciler ve AI agent'lar için bir SERP API'dir; kripto ile ödeme yapılır, kimlik yüklemek gerekmez. $0,30/1K arama ön ödemeli arama kredisinin süresi asla dolmaz. KYC olmadan — kimlik yok, selfie yok, belge yok. Kripto ile ödeme yapın.
