Geliştiriciler

fir.lat API

Panelde yapabildiğin her şeyi kendi sistemlerinden yap: link oluştur, hedefini güncelle, durdur, istatistikleri çek. API erişimi Ekip ve Kurumsal paketlerde; anahtarını Panel > API sayfasından oluştur.

Kimlik doğrulama

Her istekte anahtarını Authorization başlığında gönder:

Authorization: Bearer fl_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Temel adres: https://fir.lat/api/v1 · Gövde ve yanıtlar JSON (UTF-8). Başarılı yanıt {"ok":true,"data":...}, hata {"ok":false,"error":{"code":"...","message":"..."}} biçimindedir.

Uç noktalar

GET/meHesap, paket ve kullanım bilgisi
GET/linksLinkleri listele · page, per_page (≤100), q, status, campaign, slug
POST/linksLink oluştur
GET/links/{id}Tek link
PATCH/links/{id}Güncelle (yalnızca gönderdiğin alanlar değişir) · alternatif: POST /links/{id}/update
POST/links/{id}/pauseYönlendirmeyi durdur
POST/links/{id}/activateYeniden etkinleştir
POST/links/{id}/archiveArşivle
DELETE/links/{id}Sil (kısa ad bir daha kullanılamaz) · alternatif: POST /links/{id}/delete
GET/links/{id}/statsLink istatistikleri · days (paketindeki geçmiş süresi kadar)
GET/statsÇalışma alanı özeti · days, campaign

Link oluşturma

curl -X POST https://fir.lat/api/v1/links \
  -H "Authorization: Bearer fl_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://ornek.com/kampanya",
    "slug": "ekim",
    "title": "Ekim kampanyası",
    "campaign": "ekim-2026",
    "tags": ["instagram", "reklam"],
    "utm_source": "instagram",
    "utm_medium": "social"
  }'
urlZorunlu. http(s) hedef adres.
slugÖzel kısa ad (3-50, a-z 0-9 - _). Boşsa rastgele üretilir. Özel ad özelliği paketinde olmalı.
title, campaign, noteDüzen alanları.
tagsDizi ya da virgülle ayrılmış metin.
utm_source / utm_medium / utm_campaignHedefe UTM parametresi ekler.
expires_at2026-12-31 ya da 2026-12-31T23:59
click_limitBu sayıya ulaşınca yönlendirme durur.
passwordŞifreli link (PATCH'te null şifreyi kaldırır).

Yanıt (201):

{"ok":true,"data":{"id":42,"slug":"ekim","short_url":"https://fir.lat/ekim","qr_url":"https://fir.lat/ekim?qr=1",
 "target_url":"https://ornek.com/kampanya?utm_source=instagram&utm_medium=social","title":"Ekim kampanyası",
 "campaign":"ekim-2026","tags":["instagram","reklam"],"status":"active","clicks":0,"unique_clicks":0,"qr_clicks":0, ...}}

Hata kodları ve sınırlar

401 unauthorizedAnahtar yok, geçersiz ya da iptal edilmiş.
402 plan_limit · plan_featurePaket limiti ya da özelliği yetersiz.
403 plan_no_apiPaketinde API yok.
404 not_foundLink bulunamadı.
409 slug_takenKısa ad kullanımda.
422 url_invalid · url_blocked · slug_invalid ...Doğrulama hatası; message alanı açıklar.
429 rate_limited · quota_exceededDakikalık sınır ya da aylık kota. Retry-After başlığına uy.

Her yanıtta X-RateLimit-Limit ve X-RateLimit-Remaining başlıkları bulunur. Kısa linkler her zaman 302 ile yönlenir; QR taramaları ?qr=1 ile ayrı sayılır.