prompterdokümanlar

prompter API

Dokuz yapay zekâ platformundan birine tek bir soru sorun ve ham yanıtı geri alın; platform native atıf sağlıyorsa onlarla birlikte. prompter durumsuzdur: her çağrı gerçek, canlı bir upstream isteğidir.

Genel bakış

prompter küçük bir REST API sunar. Bir prompt ve bir platform gönderirsiniz, prompter o platformu çağırır ve değiştirilmemiş yanıtı döndürür. Asla özetlemez ya da veri uydurmaz: bir platform yanıt veremiyorsa yanıt bunu açıkça söyler.

Base URL

base url
https://api.prompter.searchestra.com

Kurallar

  • Tüm istek ve yanıt gövdeleri application/json'dur.
  • Başarılı okumalar üst düzey bir data alanı döndürür. Hatalar üst düzey bir error alanı döndürür (bkz. Hatalar).
  • Her /v1/* uç noktası X-API-Key başlığını ister. /healthz istemez.
  • Zaman damgaları UTC ve ISO 8601'dir (örneğin 2026-08-16T13:47:09Z).
Dürüstlük ilkesi. 4xx'te hata mesajı gerçek ve açıktır. 5xx'te (500 ve 503) mesaj her zaman sabit bir metne maskelenir; gerçek sebep yalnızca prompter'ın sunucu loglarındadır.

Hızlı başlangıç

İlk sorgunuzu gönderin. pr_your_key'i tenant'ınıza verilen API anahtarıyla değiştirin (bkz. Kimlik doğrulama).

istekcurl
curl -X POST https://api.prompter.searchestra.com/v1/collect \
  -H "X-API-Key: pr_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "platform": "perplexity",
    "promptText": "en iyi bulaşık deterjanı hangisi, kısaca söyle",
    "countryCode": "tr",
    "language": "tr"
  }'
yanıt200
{
  "data": {
    "rawText": "Türkiye'de en çok tercih edilenler arasında Finish ve Fairy...",
    "rawHtml": "",
    "citations": [
      { "url": "https://example.com/inceleme", "title": "En iyi deterjan", "position": 1 }
    ],
    "textLinks": [],
    "collectedAt": "2026-08-16T13:47:09Z"
  }
}

Kimlik doğrulama

Her /v1/* isteği X-API-Key başlığında bir API anahtarı taşımalıdır. Anahtarlar pr_ önekiyle başlar ve bir kullanıcıyı değil bir tenant'ı temsil eder.

başlık
X-API-Key: pr_your_key

Sunucu yalnızca anahtarın SHA-256 hash'ini saklar. Ham değer yalnızca üretim anında bir kez gösterilir ve kurtarılamaz. Anahtar kaybolursa yeni bir tane üretin. Bir tenant birden çok anahtar tutabilir; birini iptal etmek diğerlerini etkilemez.

Anahtar edinme. Anahtarlar onboarding sırasında tenant başına sağlanır. Eksik ya da iptal edilmiş anahtar, açık bir mesajla 401 unauthorized döndürür.

Bir platforma sor

POST/v1/collect

Tek bir prompt'u tek bir platforma gönderir ve ham yanıtı döndürür. Akış: promptText doğrulanır, platform'un kayıtlı olduğu onaylanır, sonra gerçek bir upstream isteği yapılır.

İstek gövdesi

AlanTipNot
platform zorunlustringDokuz koddan biri (bkz. Platformlar).
promptText zorunlustringSorulacak soru. Boş olamaz.
countryCode opsiyonelstringISO ülke kodu (örneğin tr, us). Sistem talimatını yerelleştirir.
language opsiyonelstringDil kodu. Yalnızca aimode ve aio kullanır; diğerleri yok sayar.
timeoutMs opsiyonelintegerYeniden denemeler dâhil üst sınır, milisaniye. Varsayılan 25000.

Yanıt data

AlanTipNot
rawTextstringHam yanıt metni. aimode ve aio'da model AI özeti üretmediyse boş olabilir. Bu hata değil, dürüst bir boş sonuçtur.
rawHtmlstringRezerve. Şu an her zaman boş.
citationsarraySağlayıcının açıkça döndürdüğü kaynaklar. Yalnızca perplexity, aimode ve aio doldurur. Asla null değil.
textLinksarrayYanıt metninde gözlenen linkler (Markdown). Retrieval kanıtı değildir. Asla null değil.
collectedAtstringprompter'ın çağrı için UTC zaman damgası.
citations ve textLinks. citations sağlayıcının native kaynaklarıdır. textLinks modelin metnine yazdığı linklerdir. Farklı sıralama sistemleri kullanırlar; bu yüzden pozisyona göre değil URL üzerinden ilişkilendirin.

Platformları listele

GET/v1/platforms

Kayıtlı platformların sabit listesini döndürür. Kimlik bilgisi yapılandırılmamış bir platform da burada görünür; yalnızca gerçek bir /v1/collect çağrısında başarısız olur. Bunu bir kez çekip kendi tarafınızda önbelleğe alın.

yanıt200
{
  "data": [
    { "code": "chatgpt", "unsupportedCountries": [] },
    { "code": "perplexity", "unsupportedCountries": null }
  ]
}

unsupportedCountries ya boş dizi ya da null'dur; ikisi de "kısıt yok" demektir. İkisini aynı şekilde ele alın.

Sağlık kontrolü

GET/healthz

Konteyner orkestrasyonu için liveness probe. Kimlik doğrulama gerektirmez. Servis ayaktayken 200 döner.

Platformlar

Dokuz platformun gerçek entegrasyonu vardır. citations yalnızca üç kaynaklı platformda native'dir; altı LLM platformu linkleri textLinks üzerinden verir.

KodSağlayıcıAtıf
chatgptOpenAI Chat Completionsyalnızca textLinks
claudeAnthropic Messagesyalnızca textLinks
geminiGoogle Generative Languageyalnızca textLinks
deepseekDeepSeek Chat Completionsyalnızca textLinks
grokxAI Chat Completionsyalnızca textLinks
metaaiMeta Model APIyalnızca textLinks
perplexityPerplexity Sonarnative
aimodeGoogle AI Mode (DataForSEO)native
aioGoogle AI Overviews (DataForSEO)native

Hatalar

Hatalar bir code ve bir message içeren error nesnesi döndürür.

hata zarfı
{ "error": { "code": "unauthorized", "message": "X-API-Key başlığı gereklidir." } }
DurumcodeNe zaman
400validation_failedBoş promptText ya da ülke desteklenmiyor.
401unauthorizedEksik, geçersiz ya da iptal edilmiş API anahtarı.
404not_foundBilinmeyen platform kodu (yazım hatası ya da entegrasyonu olmayan platform).
422quota_exceededBu tenant ve platform için günlük kota ya da maliyet bütçesi doldu. Yarın tekrar deneyin.
429rate_limitedAnahtar başına dakikalık istek ya da eşzamanlılık sınırı aşıldı. Kısa süre sonra tekrar deneyin.
500internalUpstream ya da dahili hata. Mesaj maskelidir.
503unavailablePlatform yapılandırılmamış ya da circuit breaker açık. Mesaj maskelidir.
422 ve 429. 422 "yarın tekrar dene" demektir (günlük bütçe doldu). 429 "kısa süre sonra tekrar dene" demektir (kısa pencere sınırı). İkisini karıştırmayın.

Limitler ve kotalar

prompter dört bağımsız guard uygular. İlk ikisi API anahtarı başınadır ve 429 döner; sonraki ikisi tenant ve platform başınadır ve 422 döner; sonuncusu tüm tenant'lar için paylaşılır ve 503 döner.

GuardKapsamSınırda
Dakikalık istekAPI anahtarı başına429 rate_limited
Eşzamanlı istekAPI anahtarı başına429 rate_limited
Günlük istek kotasıtenant ve platform başına422 quota_exceeded
Günlük maliyet bütçesitenant ve platform başına422 quota_exceeded
Circuit breakerplatform başına, tüm tenant'lar503 unavailable

Limitler planınıza göre ölçeklenir. Circuit breaker, bir platform art arda başarısız olunca açılır ve bir cooldown sonrası otomatik kapanır.