# Hatalar ve sayfa durumları: ne başarısız oldu ve yeniden denenmeli mi

> Search API hataları: altı HTTP hata kodu (ücretsiz), 200 içindeki sayfa durumları ve backoff ile yeniden deneme zamanı. KYC olmadan, kripto ile ödeme.

- URL: https://llmwebsearch.com/tr/docs/errors/
- Son güncelleme: 2026-10-22
- Yayıncı: LLMWebSearch (https://llmwebsearch.com)

İki tür sorun vardır. Bir HTTP hatası, çağrının tamamının başarısız olduğu anlamına gelir ve hiçbir maliyeti yoktur. Bir sayfa durumu, aramanın çalıştığı ancak bir sayfanın okunamadığı anlamına gelir; normal bir 200 yanıtının içinde yer alır. Agent'lar her ikisini de farklı şekilde ele almalıdır.

**Kısa yanıt — LLMWebSearch API hangi hataları döndürebilir ve bunlar ücretlendirilir mi?**

**LLMWebSearch** altı HTTP hatasına sahiptir: `400 invalid_parameter`, `401 invalid_api_key`, `402 insufficient_credits`, `429 rate_limited`, `502 search_failed` ve `504 search_timeout`. Hiçbiri ücretlendirilmez. Okunamayan sayfalar bunun yerine 200 içinde bir `content_status` gösterir. Çalışan bir arama 1 kredi tutar, Ekim 2026 itibarıyla $1,20/1K arama itibarıyla. KYC yok; kripto ile ödeme.

## Hangi HTTP hataları var?

Gövde her zaman `{"error": {"code": "…", "message": "…"}}` olur. Hiçbir hata kredi kullanmaz.

| HTTP | `code` | Neden | Yeniden denensin mi? |
| --- | --- | --- | --- |
| 400 | `invalid_parameter` | Zorunlu bir parametre eksik veya bir değer aralık dışında | Hayır: isteği düzeltin |
| 401 | `invalid_api_key` | API anahtarı eksik, yanlış veya iptal edilmiş | Hayır: anahtarı kontrol edin |
| 402 | `insufficient_credits` | Bakiye bu çağrının ücretini karşılayamıyor | Hayır: bir paket satın alın |
| 429 | `rate_limited` | Hesabın izin verdiğinden dakikada daha fazla çağrı | Evet, bir aradan sonra |
| 502 | `search_failed` | Arama tamamlanamadı | Evet, backoff ile |
| 504 | `search_timeout` | 30 saniye içinde arama sonucu yok | Evet, backoff ile |

## Sayfa durumu hatadan nasıl farklıdır?

Sayfa durumu tek bir sonucu tanımlar, çağrıyı değil. Arama çalıştı, sonuçlar orada ve `credits_used` her zamanki gibi ayarlandı. Sadece o sayfanın içeriği eksik ve `content_status` nedeni söylüyor: `blocked_by_robots`, `blocked_by_site_policy`, `target_refused`, `fetch_failed`, `fetch_timeout` veya `unsupported_content`.

Bunları tüm aramayı yeniden denemek için hata olarak görmeyin. Diğer sonuçları, eksik sayfanın snippet'ini veya farklı bir kaynağı kullanın. [Yanıt formatı](https://llmwebsearch.com/tr/docs/response/) sayfası her durumu bir tabloda açıklar.

## Neden bir reddetme etrafında asla yeniden denemiyorsunuz?

Çünkü reddetme sitenin cevabıdır ve biz buna saygı duyarız. Okuyucumuz robots.txt'ye uyar: kendini LLMWebSearch olarak tanıtır, bir sitenin onun için ya da tüm robotlar için yazdığı kurallara uyar ve okumasına izin verilmeyen her sayfanın içeriğini dışarıda bırakır. robots.txt dosyasında Content-Signal: ai-input=no ayarlayan bir site, sayfalarını sonuçlarınızın içeriğinden uzak tutar. Bir site okuyucumuzu 403, 429 veya bir challenge sayfasıyla reddettiğinde, bunu sitenin durumunu `target_status` içinde belirterek `target_refused` olarak raporlarız.

Bir site okuyucumuzu geri çevirdiğinde sonuç, içerik olmadan ve sitenin durumuyla döner: CAPTCHA'ları asla çözmeyiz, hesaplara giriş yapmayız veya bir engeli ya da ödeme duvarını aşmaya çalışmayız. Başka bir kimlik veya gizlenmiş bir tarayıcıyla da yeniden denemeyiz. Agent'ınız böyle bir sayfada döngüye girmemeli: sonuç değişmez ve site hayır dedi.

## Kodum ne zaman yeniden denemeli?

Yalnızca `429`, `502` ve `504` üzerinde. Bekleyin, sonra tekrar deneyin, her seferinde bekleme süresini ikiye katlayın ve paralel çalışanların aynı anda yeniden denememesi için biraz rastgelelik ekleyin. Üç ila beş deneme yeterlidir; sonrasında hatayı raporlayın.

`400`, `401` veya `402` için asla yeniden denemeyin: bir şeyi değiştirene kadar aynı istek aynı cevabı verir. Sayfalar için, `fetch_failed` ve `fetch_timeout` daha sonra yeni bir arama veya bir `/extract` çağrısı ile işe yarayabilir. `target_refused`, `blocked_by_robots` ve `blocked_by_site_policy` kesindir.

*Python: 429, 502 ve 504'ü üstel geri çekilme ile yeniden dene*

```python
import os
import random
import time

import requests

API = "https://llmwebsearch.com/api/v1/search"
HEADERS = {"Authorization": "Bearer " + os.environ["LLMWEBSEARCH_API_KEY"]}
RETRY_ON = {429, 502, 504}


def search(body, attempts=5):
    delay = 1.0
    for attempt in range(1, attempts + 1):
        resp = requests.post(API, headers=HEADERS, json=body, timeout=60)
        if resp.status_code == 200:
            return resp.json()
        err = resp.json().get("error", {})
        if resp.status_code not in RETRY_ON or attempt == attempts:
            raise RuntimeError(f"{resp.status_code} {err.get('code')}: {err.get('message')}")
        time.sleep(delay + random.uniform(0, delay / 2))
        delay = min(delay * 2, 30)


data = search({"q": "how to rotate api keys without downtime"})
unread = [r["url"] for r in data["results"] if r["content_status"] not in ("ok", "not_requested")]
print("credits:", data["credits_used"], "| pages not read:", unread)

```

## 402 insufficient_credits durumunda ne yapmalıyım?

Durdurun ve bakiye yükleyin. Çağrı çalıştırılmadı ve hiçbir ücret alınmadı. Uzun bir işin ortasında durmamak için önce ücretsiz olan `GET https://llmwebsearch.com/api/v1/credits` ile bakiyenizi kontrol edin ve planladığınız arama sayısıyla karşılaştırın. `read` değeri 3'ün üzerinde olan bir aramanın 2 kredi gerektirdiğini unutmayın.

Krediler kripto bakiyenizle satın alınan paketlerden gelir. Arama kredilerinin son kullanma tarihi yoktur: bu ay kullanmadığınız krediler gelecek yıl da orada durur.

## Rate limit'in altında nasıl kalırım?

Kendi kodunuzda aynı anda çalışan çağrı sayısını sınırlayın. Her hesabın dashboard'da gösterilen bir dakika başına çağrı limiti vardır; destek ekibine sorun, yükseltilebilir. Küçük bir paralel çalışan havuzu, çoğu agent için dört ila sekiz, ani yükselmeler olmadan istikrarlı bir hız sağlar. [Python](https://llmwebsearch.com/tr/docs/python/) ve [Node.js](https://llmwebsearch.com/tr/docs/node/) sayfaları böyle bir havuzu gösterir.

`429` aldığınızda, bir sonraki denemeden önce duraklayın, hemen tekrar göndermeyin. Hemen yeniden denemek sadece daha fazla reddedilen çağrı ekler.

## Hatalar: sık sorulan sorular

### Tüm sayfaları reddedilen bir arama yine de bir krediye mal olur mu?

Evet, eğer arama kendisi çalıştıysa: sıralanmış sonuçları ve snippet'leri hâlâ alırsınız. Bir aramanın fiyatı, sayfalarının kaçının okunabildiğine bağlı değildir.

### 401 iptal edilmiş bir anahtardan mı kaynaklanır?

Olabilir. İptal edilmiş bir anahtar, bir yazım hatası, eksik bir `Bearer ` öneki veya bize hiç ulaşmayan bir header, hepsi `401 invalid_api_key` verir. Her agent, uygulama veya ekip arkadaşı için bir API anahtarı oluşturun ve dashboard'dan diğerlerine dokunmadan istediğinizi iptal edin.

### Bir sayfa neden fetch_timeout döndürdü?

Sayfalar paralel olarak okunur ve 15 saniyeden uzun süren bir sayfa, tüm yanıtı geciktirmemesi için içerik olmadan döndürülür. Yavaş siteler bazen daha sonraki bir denemede yanıt verir.

### Başarısız çağrılarımı görebilir miyim?

Evet. Dashboard geçmişi, başarısız olanlar dahil, çağrılarınızı 30 gün boyunca durumları ve kredileriyle listeler. Başarısız çağrılar 0 kredi gösterir.

---

LLMWebSearch: LLMWebSearch, AI ajanları için bir web arama API'sidir; sıralanmış sonuçları en iyi sayfaların Markdown içeriğiyle birlikte döndürür ve kripto ile ödenir, kimlik yüklemesi gerekmez. $1,20/1K arama kredilik ön ödemeli krediler hiç süresi dolmaz. KYC yok — kimlik yok, selfie yok, belge yok. Kripto ile ödeme.
