Maximize AI API
Claude, GPT, Gemini ve ekonomik açık modellere TEK anahtarla erişim — token bazlı fiyatlandırmalı REST API. OpenAI uyumlu format; akıllı yönlendirme, sağlayıcı düşerse otomatik yedek ve önbellekle maliyet düşürme dahil.
Kimlik Doğrulama
Her istekte X-API-Key header'ı ile API key'inizi gönderin. OpenAI uyumlu Authorization: Bearer sk-... başlığı da kabul edilir — OpenAI SDK'ları ve LangChain/AutoGen gibi kütüphaneler bunu kullanır.
Modeller & Fiyatlar
Tüm modeller aynı endpoint üzerinden kullanılır. model parametresiyle seçim yapın.
/ 1M token
/ 1M token
/ 1M token
/ 1M token
🌐 OpenAI & Google
/ 1M token
/ 1M token
/ 1M token
💚 Ekonomi Modelleri
Açık ağırlıklı modeller — bütçe dostu, yüksek hacimli işler için. Claude'dan çok daha ucuz.
/ 1M token
/ 1M token
/ 1M token
Emekliye ayrılan model id'leri (gpt-4o, gemini-2.5-flash, llama-3.3-70b, claude-sonnet-4-6 vb.) çalışmaya devam eder — istek otomatik olarak halef modele yönlendirilir.
Chat Completions
İstek Parametreleri
| Parametre | Tip | Açıklama |
|---|---|---|
| messages* | array | Sohbet mesajları dizisi |
| model? | string | Model ID (varsayılan: claude-haiku-4-5) |
| models? | array | Yedekli model zinciri (1-5 ID, OpenRouter uyumlu): adaylar sırayla denenir, geçici sağlayıcı hatasında bir sonrakine geçilir; varsa model alanını ezer. Fatura cevabı üreten modele kesilir (yanıttaki model alanı). |
| max_tokens? | integer | Maksimum çıktı token (varsayılan: 512) |
| temperature? | float | Yaratıcılık 0-1 arası (varsayılan: 0.7). Claude 5 ailesi (Sonnet 5 / Opus 5 / Fable 5) bu parametreyi kabul etmez — gönderilirse yok sayılır. |
| stream? | boolean | Akış modu (varsayılan: false) |
| tools? | array | OpenAI function formatında araç tanımları (bkz. Araçlar bölümü) |
| tool_choice? | string | object | auto (varsayılan) · none (araç çağrılmaz) · required · {"type":"function","function":{"name":"..."}}. Başka bir değer 400 döner. |
| response_format? | object | {"type":"json_object"} → yalnız geçerli JSON (sunucu doğrular, gerekirse bir kez yeniden dener) · {"type":"json_schema","json_schema":{"name":"...","schema":{...}}} → şemaya uygun JSON, content alanında dize olarak. LangChain with_structured_output / Agents SDK output_type ile çalışır. |
| stop? | string | array | Üretimi durduran dizi(ler) |
Uygulanamayan alanlar (n>1, Claude modellerinde seed/user, top_p gibi tanınmayan alanlar) sessizce yutulmaz — yanıttaki maximize.ignored_params listesinde bildirilir. OpenAI SDK'ları bu ek alanı yok sayar.
Örnek İstek
Örnek Yanıt
Billing
Araçlar (Function Calling)
Kendi fonksiyonlarınızı tanımlayın — Claude hangisini ne zaman çağıracağına karar verir, siz kendi sisteminizde çalıştırıp sonucu geri gönderirsiniz. OpenAI tools formatıyla birebir uyumlu.
tool_calls) → 3) Fonksiyonu çalıştırıp sonucu tool rolüyle geri gönderin → 4) Claude nihai cevabı üretir.
Örnek (OpenAI SDK)
stream: true araçlarla birlikte çalışır; yanıt tamamlanınca tek bir SSE dizisi olarak gelir (token token akmaz — tool_calls bütün hâlde teslim edilir). tool_choice: "none" ile model araç çağırmaz, yalnız metin üretir.
Webhooks
Dashboard'dan webhook URL'nizi kaydedin. Bakiye olaylarında sisteminize imzalı POST isteği göndeririz. Her istek X-Webhook-Signature ve X-Webhook-Timestamp header'larıyla gelir.
Olay Tipleri
| Olay | Açıklama |
|---|---|
| balance.low | Bakiye $2.00 altına düştü |
| balance.depleted | Bakiye sıfırlandı |
| webhook.test | Test bildirimi |
Örnek Payload
İmza Doğrulama (Python)
Hukuk API — İçtihat Denetimi, Taslak & Hesap Motoru
Atıflı hukuk araştırması, kendi şablonlarınızdan taslak üretimi, künye doğrulama ve deterministik hesap motoru.
Platformun ayırt edici kısmı burada: model bir künye üretirse doğrulanır, doğrulanamazsa açıkça işaretlenir —
"teyit edilemedi" ile "yok" ayrı statülerdir. Tüm uçlar X-API-Key ister ve YALNIZ kendi arşivinizde çalışır.
{"doc_name":"kira-sozlesmesi.docx", "text":"..."} → {"doc_id", "doc_name", "chunks"}.
Belge yapı-farkındalıklı parçalanır (MADDE/başlık sınırları korunur).
Ücret: bu üç uç ücretsizdir — sorgu hakkından düşmez, token faturası çıkarmaz.
Sınırlar:
text en çok 400.000 karakter (üstü 422; daha uzun belgeyi /kb/upload-file ile yükleyin) · arşivde plan başına belge parçası sınırı vardır (aşımda 402 KOBİ planı ya da kurumsal teklif çözümse, 413 en üst sınırdaysanız — mesaj mevcut/eklenecek parça sayısını söyler) · istek gövdesi 15 MB.
Hatalar:
400 boş belge · 402/413 arşiv sınırı · 409 aynı belge arşivde zaten var (metin birebir aynıysa ad farklı olsa da) · 422 metin sınırı · 502 embedding servisi yanıt vermedi.{"query":"Kira tespit davası dilekçesi hazırla...", "model":"claude-sonnet-5"}.
Kendi arşivinizden en ilgili 6 parça bağlam olarak kullanılır.
Otomatik atıf denetimi: taslak üretilir üretilmez künyeleri denetlenir ve sonuç
audit alanında döner —
uydurma künye denetimsiz Word'e gitmez. Yanıt: {"draft", "used_templates", "audit"}.
Künye kuralı: sistem promptu tam künye (
Yargıtay 9. HD, E.2024/1234, K.2024/5678, T.10.05.2024) zorunlu kılar;
künyesini bilmediği kararı ATFETMEZ.
KVKK: kayda yalnız talep metni yazılır — yüklediğiniz dosya bağlamı saklanmaz.
{"text":"...", "model":"claude-sonnet-5"}.
Yanıt:
citations[] — her biri {type, ref, context, daire, status, note, source} (type: karar | aym | madde);
counts{verified, unverified, notfound}; summary; from_ledger (defterden gelen, ücretsiz);
from_official (resmî karar arama ucundan doğrulanan); web_calls; skipped_refs[] — tek seferde en çok 25 künye denetlenir, kalanlar bu listede adıyla döner ve özet uyarır (sessizce atlanmaz).
Statüler:
verified = kaynak URL ile doğrulandı · unverified = teyit edilemedi (kararın var olmadığı anlamına GELMEZ — yayımlanmamış kararlar kamuya açık kaynaklarda bulunmaz) · notfound = bulunamadı ya da deterministik tutarsızlık (ör. esas yılı karar yılından büyük, kapatılmış daireye kapanış sonrası tarihli karar).
Maliyet kademeli: önce defter önbelleği (ücretsiz) → deterministik imkânsızlık denetimi (ücretsiz) → resmî karar arama ucu (web hakkından DÜŞMEZ) → yalnız gerekirse web aramalı model. Web kullanılırsa KOBİ/Kurumsal planlarında aylık web hakkından düşer.
{"text":"...", "model":"claude-sonnet-5"} → {"comparison", "clauses", "archive_chunks", "rows", "kolonlar", "alinti_kolonu", "counts", "ozet_satiri"}. En çok 12 madde işlenir; sonda en riskli 3 madde özetlenir.
Her satır kaynağa bağlı: model yapılandırılmış satır bildirir (
madde, inceleme_alintisi, arsiv_alintisi, karsilastirma, risk); inceleme alıntısı gönderdiğiniz metinde, arşiv alıntısı getirilen arşiv parçalarında birebir aranır (büyük-küçük harf ve boşluk farkı katlanır). Bulunamayan satır silinmez, kaynakta:false (⚠️) ile döner. comparison bu satırlardan üretilen metindir.
Hatalar:
400 metin boş · 400 arşiv boş (önce /kb/upload ile kendi belgelerinizi yükleyin) · 503 karşılaştırma servisi kullanılamıyor.{"doc_ids":["…"], "sorular":["Sözleşmenin süresi nedir?", "Cezai şart var mı?"], "model":"claude-sonnet-5"} (en çok 20 belge, 10 soru; doc_ids GET /kb/docs'tan).
Yanıt: grid (belge başına hucreler[]: cevap, alinti, madde, durum = kaynakta ✅ / bulunamadi ⚠️ / yok ∅ / hata, kaynakta), rows (uzun biçim: bir satır = bir hücre; /export/docx'a kolonlar ve alinti_kolonu ile verilir), counts (puan_yuzde yalnız ✅ hücreleri sayar), csv, output (markdown), cagri.
Maliyet: belge başına bir model çağrısı (45.000 karakterden uzun belgede paket başına bir); kullanım belge başına
kb:tablo kaynağıyla yazılır; çağrısı düşen belgenin hücreleri hata olur, ücret alınmaz. Belge metinleri saklanmaz.
Hatalar:
400 belge/soru yok ya da tavan aşıldı · 403 salt-okur üye (belge başına ekip bütçesi harcar) · 404 belge arşivinizde yok.{"text":"...", "model":"claude-sonnet-5", "auto_audit":false} → {"review", "model", "sources", "source_count", "audit"}.
Firma arşivinizde ilgili belge varsa inceleme ona atıf yapar (
sources); büro üslubunuz (/team/style) uygulanır; künyesi eksik atıf yanıtın sonunda kalite uyarısıyla işaretlenir.
auto_audit:true atıfları web'de doğrulayıp audit alanına yazar (web hakkından düşer); varsayılan kapalı — ayrıca /kb/audit ile çağırabilirsiniz.
Hatalar:
400 metin boş · 402 bakiye/sorgu hakkı yok · 502 inceleme yapılamadı. Belge metni sunucuda saklanmaz.prev_hash → entry_hash), yani sonradan sessizce değiştirilemez.
/stats → {total_checks, unique_refs, by_status, since}.
/tutanak?refs=E.2021/1 K.2021/2,TBK m.299 → {office, items[], count, chain, generated_at, disclaimer};
refs boşsa hesabın tüm kayıtları döner. chain.ok=false ise zincirin kırıldığı satır broken_at ile bildirilir.
POST
/kb/ledger/teyit (multipart: ref, file ya da metin, isteğe bağlı kaynak, not) → "karar elimde" itirazı: künye yüklenen karar metninde esas/karar numarasıyla birebir bulunursa aynı zincire avukat teyidi satırı (status=verified, kaynak = metnin sha256 özeti) eklenir; bulunmazsa 400. Bu satır yalnız sizin hesabınızda geçerlidir, başka hesaplara aktarılmaz; tutanakta avukat_teyidi alanıyla ayrı görünür. Model yok, ücretsiz.
Ücret: ikisi de ücretsiz. Defter TTL'i: doğrulanmış/bulunamamış 180 gün, teyit edilemeyen 30 gün — bayat kayıt yeniden doğrulanır.
Kapsam: tutanak mahkeme kanıtı değildir; ne zaman, hangi kaynağa karşı denetlendiğini gösteren bir iz kaydıdır (yanıttaki
disclaimer alanı bunu taşır).{"prompt", "generated", "final", "doc_kind"} → {"stored", "edit_ratio", "learned_chunks"}. edit_ratio 0 = hiç değiştirmediniz.
Rıza kapısı: içerik saklama rızanız kapalıysa hiçbir şey yazılmaz (
stored:false) — açmak için /privacy/content-consent.
/kb/style-stats öğrenme eğrisini verir: {count, median_edit_ratio, first_half, last_half, trend}. Düzeltme oranı zamanla düşüyorsa trend "iyileşiyor" döner.Ücretsizdir: sorgu hakkından düşmez, token faturası çıkarmaz. Sohbet hattında rakam hesaplatmak yerine bu ucu çağırın — hukuk preset'i de kullanıcıyı buraya yönlendirir.
Gövde:
{"type":"kidem", "params":{...}}. type değerleri: kidem, ihbar, faiz, zamanasimi, brutten_net, fazla_mesai, yillik_izin, ise_iade.
params:
kidem / ihbar: ise_giris, cikis, aylik_brut · faiz: anapara, baslangic, bitis, faiz_tipi (yasal|avans|ozel) · zamanasimi: olay_tarihi, alacak_turu (iscilik_tazminat|ucret|genel_alacak|donemsel|haksiz_fiil|kira_alacagi) · brutten_net: aylik_brut, ay, kumulatif_matrah · fazla_mesai: aylik_brut_ciplak, haftalik_fiili, hafta_sayisi · yillik_izin: ise_giris, cikis, kullanilan_gun · ise_iade: aylik_brut_giydirilmis, guvence_ay (4-8).
DİKKAT — iki farklı yanıt şekli var.
kidem/ihbar/faiz/zamanasimi düz alanlar döner ve tür anahtarı tur'dur (ör. {tur:"kidem", brut, damga, net, tavan_uygulandi}).
brutten_net/fazla_mesai/yillik_izin/ise_iade ise {tip, sonuc, kalemler{...}} döner. Alan adını ona göre okuyun.
Her yanıtta ortak:
hesap_dokumu[] (adım adım), dayanak (yasal madde künyesi), uyarilar[], ve uç tarafından eklenen tablo_guncelleme + disclaimer.
Oran/tavan tabloları kapsam dışı bir tarihe denk gelirse motor uydurmaz: son bilinen değeri kullanır ve uyarilar içinde açıkça söyler.POST gövdesi: {"enabled":true, "improve":false, "purge":false} —
enabled içerik saklama talimatı, improve ürün geliştirme için ayrı ve açık rıza (hizmet şartı değildir),
purge talimat kapatılırken eski kayıtların da silinmesi.
DELETE /privacy/stored-content (KVKK m.11/e) saklanan düzeltme kayıtlarını siler → {"removed": n}.
Her değişiklik zaman damgası ve IP ile denetim kaydına yazılır.[TC-1] gibi yer tutucularla maskelenir, yanıt size dönerken geri açılır. Sohbet ve
/v1/chat/completions yanıtlarına kvkk_shield: {"maskeli": {"TC":1, "TEL":2}} alanı eklenir (yalnız adet — içerik asla).
Dürüst kapsam: ad-soyad ve adres yakalanmaz (desen tabanlı tespit); emlak/ticaret modlarında ve araçlı (
tools)
isteklerde uygulanmaz — atlandığında yanıtta {"atlandi": ...} ile açıkça söylenir. Kalkanlı stream:true istekler
yanıtı tamamlanınca tek seferde SSE ile alır (geri açma kayıpsız olsun diye). "Verim yurt dışına hiç çıkmasın" isteyen anahtar için
ayrı mekanizma: kvkk_yurtici_zorunlu bayrağı (istek maskeli bile gönderilmez, fail-closed reddedilir).
POST gövdesi: {"enabled": true}. Değişiklik zaman damgası ve IP ile denetim kaydına yazılır.base_url=https://www.themaximize.ai/audit/v1 ile bağlayabilirsiniz.
Gövde: {"messages":[...], "model":"auto", "preset":"legal"}; preset ?preset= ile de verilebilir.
Yanıt, standart choices[0].message.content alanına ek olarak maximize{preset, model_used, web_calls, route, web_throttled} taşır.
Güvenlik: dış sistem promptu enjekte edilemez — gövdedeki
role:"system" mesajları sunucuda filtrelenir.Emlak API — İlan Havuzu & Co-Brokerage
Kendi yüklediğiniz ilanlardan oluşan havuz + doğal dil arama + ofisler-arası ortak havuz. Sahibinden kazınmaz;
veri sizin envanteriniz, iletişim bilgileri sahiplerinin bilgisi dahilinde eklenir. Tüm uçlar X-API-Key ister ve YALNIZ kendi havuzunuzda çalışır.
GET /listings/template.csv{"query":"Kadıköy'de 3+1 kiralık", "mode":"", "scope":"kendi"}.
scope:
"kendi" (varsayılan — yalnız kendi havuz) | "ortak" (co-brokerage: paylaşılan cross-office ilanlar da aranır).
Ortak havuzu görebilmek için en az bir AKTİF ilanınızı paylaşmış olmanız gerekir (karşılıklılık). Yanıttaki scope_applied alanı hangi kapsamın gerçekten uygulandığını söyler.
KVKK: cross-office sonuçlarda
contact maskeli, açıklamadaki gömülü telefon/e-posta temizlenmiş, eids_no gizli döner; owner_office ilan sahibinin ofis adıdır (atıf).source="cobroke" + sizin ofis atfınızla gider; müşteri numarası ASLA karşı tarafa aktarılmaz (sizin havuzunuzda cobroke_out kaydında kalır). Sahip ofis kabul/ret eder: POST /listings/leads/{lead_id}/cobroke {"action":"accept"|"reject"} — atıf ancak kabulle geçerli sayılır./listings/{id}/status (aktif|satildi|pasif), /listings/{id}/refresh (tazelik teyidi), /listings/parse (serbest metinden ilan çıkarımı).Ticaret API — Tedarikçi/Alıcı Havuzu
Kendi yüklediğiniz tedarikçi/alıcı kayıtları + web-destekli araştırma. Havuz-dışı iletişim uydurulmaz; cevaptaki havuzla uyuşmayan telefon/e-posta/domain sunucu tarafında yakalanıp uyarıyla işaretlenir.
GET /suppliers/template-birlik.csv). Alanlar: name, role (satici|alici), product, country, city, contact, website, description.{"query":"Bursa'da örme kumaş üreticisi"}. Web araması KOBİ/Kurumsal planlarında aylık web hakkından düşer.verified rozeti. Emin değilse doğrulanmış GÖSTERMEZ (uydurmaz). /suppliers/parse: serbest metinden firma alanı çıkarımı.Muhasebe API — Ön-Defter
Fatura/fiş metninden gider-gelir kaydı çıkarımı ve deterministik KDV/stopaj hesabı. İş bölümü nettir: yapay zeka yalnız METİNDEN ALAN ÇIKARIR, rakamı MOTOR hesaplar. Model aritmetiği hiçbir zaman otorite değildir — çıkardığı tutarlar ayrıca aritmetik olarak denetlenir. Ön-muhasebe defteridir; beyanname aracı değildir.
{"text":"...", "model":"claude-sonnet-5"}.
KAYDETMEZ — öneri döner, kullanıcı onaylayıp
POST /expenses ile kaydeder.
Yanıt: çıkarılan alanlar + warnings[].
İki güvence: (1) modelin doldurmadığı tutarlar motorla türetilir — yalnız KDV dahil toplam varsa matrah ayrıştırılır, yalnız matrah varsa KDV eklenir; (2) tutarlar tutarlılık denetiminden geçer —
net × oran ≈ KDV ve net + KDV ≈ toplam uymuyorsa beklenen değeri içeren uyarı döner ve onay ekranında görünür.kind (gider|gelir), date (YYYY-MM-DD), vendor, category, description, net (KDV hariç matrah), kdv_rate (0|1|10|20), kdv, total (KDV dahil), stopaj.
category değerleri: kira, yemek, ulasim, ofis, demirbas, hizmet, pazarlama, personel, vergi_resmi, diger.
GET /expenses?month=YYYY-MM ile aya göre filtrelenir. Eksik tutarlar burada da motorla tamamlanır ve tutarlılık uyarıları warnings alanında döner.{month, count, gelir_net, gider_net, kar_net, kdv_hesaplanan, kdv_indirilecek, kdv_odenecek, kdv_devreden, stopaj_toplam, kategori_dagilimi{}}.
Hesaplanan ve indirilecek KDV farkı pozitifse
kdv_odenecek, negatifse kdv_devreden dolar — ikisi aynı anda dolmaz.
month zorunludur ve YYYY-MM biçiminde olmalıdır (aksi hâlde 400).
Yanıt, her yüzeyde olduğu gibi SMMM yönlendirmesi taşıyan bir
not alanı içerir.GET /alacak açık gelir faturalarını (vadesi girilmiş, kapanmamış) yaşlandırma kovalarıyla döner: {satirlar[], yaslandirma[], ozet{acik_toplam, gecikmis_toplam, en_eski_gun}}.
GET /alacak/{id}/hatirlatma?kademe=1|2|3 hatırlatma metnini şablondan üretir; tutar kayıttan, temerrüt faizi hukuk motorundan gelir (TCMB avans — TTK m.1530). Motorun uyarıları uyarilar alanında olduğu gibi döner. Kademe verilmezse gecikme gününe göre önerilen kademe kullanılır (45+ gün → 3, 15+ → 2, altı → 1) ve kademe geriye gitmez.hatirlatildi: hatırlatma sayacını artırır ve Süre Bekçisi'ne takip görevi açar ({kademe, takip_gun}). Gönderimi platform yapmaz — metni siz gönderir, burada işaretlersiniz.
tahsil: {tutar} verilirse kısmi tahsilat eklenir, verilmezse fatura tamamen kapanır; bakiye sıfırlanınca kayıt kendiliğinden kapanır. vade: {due_date} (YYYY-MM-DD) ile mevcut gelir kaydına vade ekler.Hata Kodları
| Kod | Açıklama |
|---|---|
| 401 | Geçersiz veya eksik API key |
| 402 | Yetersiz bakiye ya da plan tavanı doldu (sorgu/web hakkı) — bakiye yükleyin, KOBİ planına geçin ya da kurumsal teklif alın |
| 403 | Yetkisiz erişim (ör. geçersiz admin secret) |
| 404 | Kayıt bulunamadı — dikey uçlarda yalnız KENDİ havuzunuz görünür; başka ofisin kaydına erişim de 404 döner |
| 429 | Rate limit aşıldı — bekleyin ve tekrar deneyin |
| 500 | Sunucu hatası |
/v1 altındaki hatalar OpenAI şemasında döner — SDK'lar error.message okuyabilir; detail alanı da korunur:
OpenAI Kütüphanesiyle Kullanım
Mevcut OpenAI kodunuzu değiştirmeden kullanabilirsiniz — sadece base_url ve api_key değiştirin. Tüm OpenAI SDK'ları (Python, Node.js, LangChain, vb.) çalışır.
Node.js için:
Hermes Agent ile Kullanım
Nous Research'ün açık kaynak otonom ajanı Hermes Agent, Maximize'ı model sağlayıcısı olarak kullanabilir. Kurulumdan sonra hermes model komutunda Custom endpoint seçin veya ~/.hermes/config.yaml dosyasına şunu yazın:
Araç çağrıları (function calling), streaming ve /v1/models üzerinden otomatik model keşfi desteklenir. Türkiye'de işlenen veriyle çalışması gereken ajanlar için model listesini ?kvkk_yurtici=true ile filtreleyebilirsiniz.