BaskaMesaj API Dokumantasyonu
Mail gonderim, abone yonetimi, A/B test ve AI proxy. REST + JSON. API anahtarini editorden uretebilirsin - HMAC opsiyoneldir, varsayilan olarak tier'a gore scope ve rate limit otomatik uygulanir.
Ilk Istegin (30 saniye)
https://api.340392.xyz/v1Editor > Hesabim > Geliştirici API ile anahtar olusturdugunda gercek base URL gosterilir. Asagidaki orneklerdeki URL placeholder'dir; kendi anahtarinla beraber gelen base URL'i kullan.
API anahtarini elde edince Authorization: Bearer bms_live_... header'i ile cagri yap. /api_ping sana scope listesini doner.
curl -X POST "https://api.340392.xyz/v1/api_ping" \
-H "Authorization: Bearer bms_live_..." \
-H "Content-Type: application/json"
# Yanit:
# { "ok": true, "tier": "premium", "scopes": ["mail:send","subscribers:read","subscribers:write"] }Tier'a Gore API Politikasi
Server-side enforced - istek tier'in vermedigi bir scope'a yapilirsa sessizce reddedilir (403). Rate limit'i asarsan 429 + retry_after_s alirsin.
| Paket | API | Rate/sn | Gun | Anahtar limit | Scope'lar |
|---|---|---|---|---|---|
| Free | Kapali | - | - | - | - |
| Standart | Acik | 5/sn | 1.000 | 1 | mail:send |
| Premium | Acik | 30/sn | 50.000 | 5 | mail:send, subscribers:*, lists:*, ab:run |
| Enterprise | Acik | 200/sn | Sinirsiz | inf | * |
Mevcut Endpoint'ler
/api_pingscope: herhangiAPI Health Ping
Anahtarin gecerli mi + hangi scope'lar acik. Tani amacli; ucretsiz tier'larda da calisir.
curl ornegi
curl -X POST "https://api.340392.xyz/v1/api_ping" \
-H "Authorization: Bearer bms_live_..." \
-H "Content-Type: application/json" \
-d '{}'
# Ornek yanit:
# { "ok": true, "scopes": ["mail:send","subscribers:read"], "tier": "premium" }/subscribers_apiscope: subscribers:read | subscribers:writeAboneler API
Liste/abone CRUD. action ile islem secilir: list_lists | create_list | add_subscribers | remove | update.
curl ornegi
curl -X POST "https://api.340392.xyz/v1/subscribers_api" \
-H "Authorization: Bearer bms_live_..." \
-H "Content-Type: application/json" \
-d '{}'
# Ornek yanit:
# { "ok": true, "lists": [...] }/api_ab_campaignscope: ab:runA/B Test Kampanya
Aktif A/B testin istatistigi + kazanani ilan etme. Wilson score guven araligi.
curl ornegi
curl -X POST "https://api.340392.xyz/v1/api_ab_campaign" \
-H "Authorization: Bearer bms_live_..." \
-H "Content-Type: application/json" \
-d '{}'
# Ornek yanit:
# { "ok": true, "campaign_ref": "...", "winner": "B", "lift_pct": 8.4 }/api_ai_proxyscope: ai:proxyAI Proxy (Claude)
Anthropic Claude'a proxy. Token tuketimi tenant kredisinden dusulur (ai-token kovasi).
curl ornegi
curl -X POST "https://api.340392.xyz/v1/api_ai_proxy" \
-H "Authorization: Bearer bms_live_..." \
-H "Content-Type: application/json" \
-d '{}'
# Ornek yanit:
# { "ok": true, "completion": "...", "tokens_in": 12, "tokens_out": 96 }HMAC Imza (Opsiyonel)
Anahtari kullanim sirasinda sizdirma riskine karsi ek koruma. Anahtarinla birlikte uretilen whsk_... secret ile istegin body'sini imzalarsin; ham anahtarin sizsa bile imzasiz istek reddedilir. Server +/-300 saniye timestamp toleransi uygular, imza karsilastirmasi sabit-zamandir.
# 1) Timestamp + body'yi HMAC ile imzala
TS=$(date +%s)
BODY='{"hello":"world"}'
SECRET="whsk_..."
SIG=$(printf '%s.%s' "$TS" "$BODY" | openssl dgst -sha256 -hmac "$SECRET" -hex | awk '{print $2}')
# 2) Istegi gonder
curl -X POST "https://api.340392.xyz/v1/api_ping" \
-H "Authorization: Bearer bms_live_..." \
-H "X-Bms-Signature: $TS.$SIG" \
-H "Content-Type: application/json" \
-d "$BODY"HTTP Yanitlari
| Kod | Anlam | Ne yapmali |
|---|---|---|
200 | Basarili | Yanit body'sini isle. |
401 | Yetkisiz | Anahtar yok / hatali / iptal. Yeni anahtar uret. |
403 | Yasak (scope) | Bu endpoint icin scope eksik veya tier'in vermedi. Pro'ya gec. |
429 | Rate Limit | retry_after_s kadar bekle + tekrar dene. |
5xx | Sunucu Hatasi | Exponential backoff ile 3 kez yeniden dene; calismazsa destek. |
Yardim mi gerek?
Hata, scope sorusu veya yeni endpoint istegin icin destek ekibimize ulas.