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
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
dataalanı döndürür. Hatalar üst düzey birerroralanı döndürür (bkz. Hatalar). - Her
/v1/*uç noktasıX-API-Keybaşlığını ister./healthzistemez. - Zaman damgaları UTC ve ISO 8601'dir (örneğin
2026-08-16T13:47:09Z).
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).
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"
}'{
"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.
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.
401 unauthorized döndürür.Bir platforma sor
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
| Alan | Tip | Not |
|---|---|---|
| platform zorunlu | string | Dokuz koddan biri (bkz. Platformlar). |
| promptText zorunlu | string | Sorulacak soru. Boş olamaz. |
| countryCode opsiyonel | string | ISO ülke kodu (örneğin tr, us). Sistem talimatını yerelleştirir. |
| language opsiyonel | string | Dil kodu. Yalnızca aimode ve aio kullanır; diğerleri yok sayar. |
| timeoutMs opsiyonel | integer | Yeniden denemeler dâhil üst sınır, milisaniye. Varsayılan 25000. |
Yanıt data
| Alan | Tip | Not |
|---|---|---|
| rawText | string | Ham yanıt metni. aimode ve aio'da model AI özeti üretmediyse boş olabilir. Bu hata değil, dürüst bir boş sonuçtur. |
| rawHtml | string | Rezerve. Şu an her zaman boş. |
| citations | array | Sağlayıcının açıkça döndürdüğü kaynaklar. Yalnızca perplexity, aimode ve aio doldurur. Asla null değil. |
| textLinks | array | Yanıt metninde gözlenen linkler (Markdown). Retrieval kanıtı değildir. Asla null değil. |
| collectedAt | string | prompter'ın çağrı için UTC zaman damgası. |
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
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.
{
"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ü
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.
| Kod | Sağlayıcı | Atıf |
|---|---|---|
chatgpt | OpenAI Chat Completions | yalnızca textLinks |
claude | Anthropic Messages | yalnızca textLinks |
gemini | Google Generative Language | yalnızca textLinks |
deepseek | DeepSeek Chat Completions | yalnızca textLinks |
grok | xAI Chat Completions | yalnızca textLinks |
metaai | Meta Model API | yalnızca textLinks |
perplexity | Perplexity Sonar | native |
aimode | Google AI Mode (DataForSEO) | native |
aio | Google AI Overviews (DataForSEO) | native |
Hatalar
Hatalar bir code ve bir message içeren error nesnesi döndürür.
{ "error": { "code": "unauthorized", "message": "X-API-Key başlığı gereklidir." } }| Durum | code | Ne zaman |
|---|---|---|
| 400 | validation_failed | Boş promptText ya da ülke desteklenmiyor. |
| 401 | unauthorized | Eksik, geçersiz ya da iptal edilmiş API anahtarı. |
| 404 | not_found | Bilinmeyen platform kodu (yazım hatası ya da entegrasyonu olmayan platform). |
| 422 | quota_exceeded | Bu tenant ve platform için günlük kota ya da maliyet bütçesi doldu. Yarın tekrar deneyin. |
| 429 | rate_limited | Anahtar başına dakikalık istek ya da eşzamanlılık sınırı aşıldı. Kısa süre sonra tekrar deneyin. |
| 500 | internal | Upstream ya da dahili hata. Mesaj maskelidir. |
| 503 | unavailable | Platform yapılandırılmamış ya da circuit breaker açık. Mesaj maskelidir. |
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.
| Guard | Kapsam | Sınırda |
|---|---|---|
| Dakikalık istek | API anahtarı başına | 429 rate_limited |
| Eşzamanlı istek | API anahtarı başına | 429 rate_limited |
| Günlük istek kotası | tenant ve platform başına | 422 quota_exceeded |
| Günlük maliyet bütçesi | tenant ve platform başına | 422 quota_exceeded |
| Circuit breaker | platform başına, tüm tenant'lar | 503 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.