Araç sayfasını slug ile çözümle
const url = 'https://api.mirac-ozdemir.com/v1/public/tools/by-slug/tr/example';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.mirac-ozdemir.com/v1/public/tools/by-slug/tr/exampleWeb sitesindeki sayfa adresinden (ör. /tr/kdv-hesaplama) araca ulaşır. Eski bir slug istenirse data.kind = "redirect" ve güncel slug döner (tek adım); aksi halde data.kind = "tool" ve data.tool by-key yanıtıyla aynıdır. Slug değişebilir; entegrasyonlarda key tercih edin.
Parameters
Bölüm başlığı “Parameters”Path Parameters
Bölüm başlığı “Path Parameters”İçerik dili: tr veya en. Zorunludur; araç o dilde yoksa 404 döner.
Yerelleştirilmiş sayfa slug’ı (ör. kdv-hesaplama).
Responses
Bölüm başlığı “Responses”Araç verisi veya yönlendirme
object
object
object
Veritabanı kimliği (UUID). Ortamdan ortama değişir; entegrasyonlarda key kullanın.
Kalıcı araç anahtarı (ör. kdv); tüm ortamlarda aynıdır.
Yayınlanmış sürümün içerik özeti; önbellek anahtarı olarak kullanılabilir.
Primary category key
MAINTENANCE: the page shows a maintenance notice (503) and calculations are refused
Breadcrumb trail of the primary category, main category first
object
Every category the tool is listed in, primary first
object
Gösterilmesi gereken uyarı türü (TAX, FINANCIAL, LEGAL, HEALTH veya NONE).
Arama motorlarına açık mı (yalnızca web sitesi için anlamlı).
Web sitesindeki sayfa yolu (https://mirac-ozdemir.com ile birleştirin).
Seçilen dildeki metinler; form etiketleri content.labels içindedir.
object
object
object
Form ve sonuç etiketleri.
object
Girdi alanı adı → etiketler. options, enum değerinin görünen adıdır.
object
object
object
Sonuç anahtarı → etiket.
object
object
Bölüm anahtarı → başlık.
object
object
object
Girdi tanımı: hangi alanlar, türleri, sınırları ve varsayılanları.
object
Alan adı → alan tanımı.
object
Ondalık sayı. Değer string olarak gönderilir (ör. "1234.56"): nokta ondalık ayırıcıdır, binlik ayırıcı yoktur. JSON number reddedilir (TYPE_MISMATCH).
object
true ise değer gönderilmelidir. false ise gönderilmeyen alan için default kullanılır.
İzin verilen azami ondalık hane sayısı; fazlası SCALE_EXCEEDED hatası verir.
Alt sınır (dahil), ondalık string. Dışındaki değerler OUT_OF_RANGE.
Üst sınır (dahil), ondalık string.
Değer gönderilmezse kullanılan varsayılan.
Sabit seçenek listesi. values içindeki değerlerden biri string olarak gönderilir. Kullanıcıya gösterilecek metinler content.labels.inputs.<alan>.options içindedir.
object
true ise değer gönderilmelidir. false ise gönderilmeyen alan için default kullanılır.
Geçerli değerler (sabit, dile göre değişmez).
Varsayılan seçenek (values içinden).
Evet/hayır. JSON true / false olarak gönderilir.
object
true ise değer gönderilmelidir. false ise gönderilmeyen alan için default kullanılır.
Takvim tarihi, YYYY-MM-DD biçiminde string.
object
true ise değer gönderilmelidir. false ise gönderilmeyen alan için default kullanılır.
En erken tarih (dahil).
En geç tarih (dahil).
Sonuç alanları ve biçimleri.
object
Bir sonuç alanı. Değer her zaman string döner: ondalıklar tam scale haneyle (ör. "1200.00"), tarihler YYYY-MM-DD.
object
Sonuç anahtarı (data.result içindeki ad).
Gösterim biçimi: money (para; currency dolu), percent (yüzde değeri; "20" = %20), number, date.
Sonuçtaki ondalık hane sayısı (tarihlerde 0).
ISO 4217 para birimi (ör. TRY); money biçiminde bulunur.
Varsa birim (ör. gün, ay).
Form düzeni ve bileşen ipuçları (yalnızca sunum).
object
Form bölümleri, gösterim sırasıyla. Bölüm başlıkları content.labels.sections.<key> içindedir.
object
Bu bölümdeki girdi alanları, sırasıyla.
Girdi alanı adı → sunum ipucu.
object
object
Önerilen form bileşeni.
money bileşeni için para birimi.
Oran seçimine bağlı enum alanlarında her seçeneğin yanında güncel oranı (rates[]) gösterin.
Alan yalnızca belirtilen girdi bu değere eşitken gösterilir. Gizli alan için değer göndermeyin (varsayılan kullanılır).
object
object
Öne çıkarılacak sonuç anahtarları.
object
object
Gösterilen oranların geçerli olduğu tarih (bugün, Europe/Istanbul).
Aracın kullandığı güncel oranlar ve kaynakları (gösterim amaçlı; hesaplama sunucuda yapılır).
object
object
Example
{ "data": { "kind": "tool", "tool": { "availability": "ONLINE", "disclaimer": "NONE", "locale": "tr", "content": { "labels": { "inputs": { "amount": { "label": "Tutar", "placeholder": "0,00", "help": "Hesaplamak istediğiniz tutarı Türk lirası olarak girin." }, "mode": { "label": "Girilen tutar", "options": { "exclusive": "KDV hariç", "inclusive": "KDV dahil" } }, "vatRateOption": { "label": "KDV oranı", "options": { "standard": "Genel oran", "reduced10": "İndirimli oran", "reduced1": "İndirimli oran (temel gıda vb.)" } } }, "outputs": { "net": { "label": "KDV hariç tutar" }, "vat": { "label": "KDV tutarı" }, "gross": { "label": "KDV dahil tutar" } }, "sections": { "main": { "title": "Hesaplama bilgileri" } } } }, "seo": { "ogImage": "default" }, "inputSchema": { "fields": { "amount": { "type": "decimal", "required": true, "scale": 2, "min": "0", "max": "999999999999.99" }, "mode": { "type": "enum", "required": true, "values": [ "exclusive", "inclusive" ], "default": "exclusive" }, "vatRateOption": { "type": "enum", "required": true, "values": [ "standard", "reduced10", "reduced1" ], "default": "standard" } } }, "outputSchema": { "fields": [ { "key": "net", "type": "decimal", "format": "money", "currency": "TRY", "scale": 2 }, { "key": "vat", "type": "decimal", "format": "money", "currency": "TRY", "scale": 2 }, { "key": "gross", "type": "decimal", "format": "money", "currency": "TRY", "scale": 2 } ] }, "uiSchema": { "sections": [ { "key": "main", "fields": [ "amount", "mode", "vatRateOption" ] } ], "fields": { "amount": { "widget": "money", "currency": "TRY" }, "mode": { "widget": "radio" }, "vatRateOption": { "widget": "select", "showRateValues": true } }, "result": { "highlight": [ "net", "vat", "gross" ] } }, "alternates": [ { "locale": "tr" } ], "related": [ { "locale": "tr" } ] } }}Headers
Bölüm başlığı “Headers”İstek kimliği; destek taleplerinde iletin.
Bulunamadı
Tüm hatalarda aynı zarf. details yapısı koda göre değişir (bkz. API açıklamasındaki tablo).
object
object
Makine tarafından okunacak sabit kod; mantığınızı buna göre kurun.
İngilizce, insan tarafından okunacak açıklama; değişebilir.
fields[] (girdi hataları), issues[] (istek şeması), reason, currentVersion, retryAfterSeconds, rates, asOf.
object
X-Request-Id yanıt başlığıyla aynı değer.
Examples
Araç yok, yayında değil veya bu dilde yok
{ "error": { "code": "NOT_FOUND", "message": "Tool not found" }, "requestId": "5f0c6a5e-2b7e-4a7b-9a51-0d9f0c1f7e21"}Headers
Bölüm başlığı “Headers”İstek kimliği; destek taleplerinde iletin.
Doğrulama, hesaplama veya oran hatası
Tüm hatalarda aynı zarf. details yapısı koda göre değişir (bkz. API açıklamasındaki tablo).
object
object
Makine tarafından okunacak sabit kod; mantığınızı buna göre kurun.
İngilizce, insan tarafından okunacak açıklama; değişebilir.
fields[] (girdi hataları), issues[] (istek şeması), reason, currentVersion, retryAfterSeconds, rates, asOf.
object
X-Request-Id yanıt başlığıyla aynı değer.
Examples
Geçersiz parametre
{ "error": { "code": "VALIDATION_ERROR", "message": "Invalid request", "details": { "issues": [ { "path": "locale", "message": "Invalid option: expected one of \"tr\"|\"en\"", "code": "invalid_value" } ] } }, "requestId": "5f0c6a5e-2b7e-4a7b-9a51-0d9f0c1f7e21"}Headers
Bölüm başlığı “Headers”İstek kimliği; destek taleplerinde iletin.
Beklenmeyen sunucu hatası
Tüm hatalarda aynı zarf. details yapısı koda göre değişir (bkz. API açıklamasındaki tablo).
object
object
Makine tarafından okunacak sabit kod; mantığınızı buna göre kurun.
İngilizce, insan tarafından okunacak açıklama; değişebilir.
fields[] (girdi hataları), issues[] (istek şeması), reason, currentVersion, retryAfterSeconds, rates, asOf.
object
X-Request-Id yanıt başlığıyla aynı değer.
Example
{ "error": { "code": "NOT_FOUND", "message": "Tool not found" }, "requestId": "5f0c6a5e-2b7e-4a7b-9a51-0d9f0c1f7e21"}Headers
Bölüm başlığı “Headers”İstek kimliği; destek taleplerinde iletin.