Bir API tokenıyla kimlik doğrulaması yapın, bağlantıları listeleyin ve oluşturun, ziyaretleri okuyun ve webhook'lara abone olun.
Temel URLhttps://letl.ink/api/v1Yalnızca HTTPS
PlanlarGrowthUltimate
Bu sayfada
Başlarken
REST API Growth ve Ultimate planlarında kullanılabilir. İstekler HTTPS üzerinden https://letl.ink/api/v1 adresine gider. Free veya Solo'daki bir çalışma alanı /api/v1 üzerinden 403 plan_required alır; MCP uç noktası ayrıca Ultimate ile sınırlıdır.
Entegrasyonlar → REST API'yi açın (yalnızca çalışma alanı sahipleri ve yöneticileri).
Bir token oluşturun. Süresi dolmaz.
Bunu bir şifre gibi saklayın. Tek bir token REST API'ye, MCP sunucusuna ve bu çalışma alanına bağlı tüm otomasyon platformlarına hizmet eder; bu nedenle yeniden oluşturmak hepsini aynı anda geçersiz kılar.
Üyeler, oluşturulmuşsa mevcut bir tokenı kopyalayabilir; yalnızca sahipler ve yöneticiler yenileyebilir.
Token'ı X-API-KEYveyaAuthorization: Bearer olarak gönderin. Her ikisi de /api/v1 ve /mcp üzerinde kabul edilir. Hiç token içermeyen bir istek 401 unauthenticated döndürür.
Her başarılı yanıt, data anahtarı ve sonuç hakkında söylenecek bir şey olduğunda — sayfalama, belirlenen tarih aralığı, coğrafyanın dahil edilip edilmediği — meta anahtarı içeren bir JSON nesnesidir. Her hata, sabit bir code, insan tarafından okunabilir bir message ve bazen details içeren error anahtarlı bir nesnedir. Mesaj metnine göre değil, her zaman code değerine göre dallanın.
Liste uç noktaları limit (1–200, varsayılan 50) ve offset kabul eder. meta bloğu total, has_more ve next_offset değerlerini bildirir; böylece hesap yapmadan sayfalayabilirsiniz: has_more değeri false olana kadar offset = meta.next_offset ile çağırmaya devam edin.
GET /links; sort (created_at, clicks, short_code, title, updated_at), direction (asc/desc), search (kısa kod, başlık ve hedefle eşleşir), type, archived, favorite ve domain parametrelerini kabul eder. Bilinmeyen değerler sessizce yok sayılmak yerine invalid_parameter ve izin verilen değerlerin listesiyle reddedilir.
Tarih aralıkları
start_date ve end_dateYYYY-MM-DD biçimini kullanır ve her iki günü de kapsar. Aralık, planınızın saklama sınırına göre kırpılır — 30 günlük saklama süresine sahip bir plandan bir yıllık geçmiş istemek, mevcut 30 günü döndürür; meta.date_range gerçekte kullanılan aralığı bildirir.
Hız sınırları
Hesap başına dakikada 600 istek, kayan pencereyle. Her yanıt X-RateLimit-Limit, X-RateLimit-Remaining ve X-RateLimit-Reset (Unix zaman damgası) başlıklarını taşır. Sınırı aşmak, saniye cinsinden Retry-After başlığıyla birlikte 429 rate_limited döndürür. Hemen yeniden denemek yerine Retry-After süresi kadar bekleyin.
Sürüm yolda yer alır. Bir yanıta alan veya yeni bir isteğe bağlı parametre eklemek geriye dönük uyumluluğu bozmaz ve her an olabilir; bu nedenle yanıtları savunmacı biçimde ayrıştırın ve tanımadığınız anahtarları yok sayın. Mevcut bir alanı değiştirecek veya kaldıracak her şey yeni bir sürüm önekiyle yayınlanır.
Uç noktalar
Hesap
GET/meBağlantı testi
Kimlik, çalışma alanı, plan ve o planın sağladığı tüm haklar. Bir tokenı doğrulamanın ve hesabın neye izinli olduğunu denemeden önce öğrenmenin en ucuz yolu.
Bu fatura ayında her kotanın ne kadarının kullanıldığı. Bir müşteriyi izlenen tıklama sınırına ulaşmadan önce uyarmak için kullanın — sınır aşıldığında yönlendirme yine çalışır, ancak tıklamalar kaydedilmez.
Çalışma alanındaki özel alan adları ve her birinin DNS doğrulamasını tamamlayıp tamamlamadığı. Bağlantı oluştururken domain alanında yalnızca doğrulanmış alan adları kullanılabilir.
GET/integrations
Ürünün sunduğu her entegrasyon; planınızın onu içerip içermediği, bu çalışma alanının onu bağlayıp bağlamadığı ve teslimatın nasıl gittiği — son durum, son hata ve art arda başarısızlık sayısı. Çok sayıda çalışma alanını izlemek için kullanışlıdır.
Bağlantılar
GET/linksSayfalı
Çalışma alanındaki bağlantılar; tıklama toplamları all, ios, android ve desktop olarak ayrılmış. Hiç tıklanmamış bağlantılar da dahildir.
Sorgu parametreleri
domainstring
Tek bir ana bilgisayar adıyla sınırlayın. Çalışma alanındaki tüm ana bilgisayar adlarını listelemek için boş bırakın.
İsteğe bağlı
searchstring
Kısa kod, başlık ve hedefle eşleşir.
İsteğe bağlı
typestring
direct, utm, appstore, instagram, mobile veya device.
İsteğe bağlı
archivedboolean
Varsayılan false. Bunun yerine arşivi listelemek için true gönderin.
İsteğe bağlı
favoriteboolean
Yıldızlı bağlantılarla sınırlayın.
İsteğe bağlı
sortstring
created_at (varsayılan), clicks, short_code, title veya updated_at.
İsteğe bağlı
directionstring
asc veya desc. Varsayılan desc.
İsteğe bağlı
limitinteger
1–200. Varsayılan 50.
İsteğe bağlı
offsetinteger
Varsayılan 0.
İsteğe bağlı
start_datedate
YYYY-MM-DD. Hangi bağlantıların döndürüleceğini değil, tıklama toplamlarının aralığını belirler.
Kimliğe göre tek bir bağlantı, liste uç noktasının döndürdüğü yapıyla aynı.
POST/links
Kısa bağlantı oluşturun. Rastgele bir kod için short_code alanını boş bırakın. Hedefin title değeri yoksa sayfa başlığını arka planda getiririz.
JSON gövdesi
destination
Yönlendirilecek URL. direct ve utm bağlantıları için zorunludur. original_url takma ad olarak kabul edilir.
Gerekli*
short_code
En fazla 20 karakter: harfler, rakamlar, kısa çizgiler ve alt çizgiler; ayırıcıyla başlayamaz veya bitemez. Her ana bilgisayar adı için benzersiz olmalıdır.
İsteğe bağlı
title
Paneldeki görünen ad.
İsteğe bağlı
domain
Doğrulanmış bir özel alan adı veya temel alan adı. Varsayılan temel alan adıdır.
İsteğe bağlı
type
direct (varsayılan), utm, appstore, instagram, mobile veya device. direct ve utm dışındaki her şey Solo, Growth veya Ultimate planı gerektirir.
İsteğe bağlı
utm_source, utm_medium, utm_campaign
utm bağlantıları için; type değeri utm olduğunda utm_source zorunludur.
İsteğe bağlı
ios_url, android_url
appstore ve mobile bağlantıları için platform hedefleri.
İsteğe bağlı
desktop_url, mobile_url
device bağlantıları için ikisi de zorunludur.
İsteğe bağlı
instagram_username
instagram bağlantıları için.
İsteğe bağlı
split_variations
direct veya utm bağlantısında ağırlıklı bir A/B testi çalıştırmak için {name, url, weight} nesnelerinden oluşan bir dizi — en az iki tane.
İsteğe bağlı
limit_visits_per_device
Cihaz başına saatlik ziyaretleri sınırlamak için true olarak ayarlayın ve visit_limit_per_device değerini girin.
Tek bir istekte çok sayıda bağlantı oluşturun. Her satır bağımsız olarak denenir: geçerli satırlar oluşturulur ve hatalar dizin bazında raporlanır; böylece tek bir hatalı URL grubun geri kalanını asla iptal etmez. Herhangi bir şey oluşturulduysa 201, hiçbir şey oluşturulmadıysa 422 döndürür.
PATCH birleştirir: yalnızca gönderdiğiniz alanlar değişir, geri kalan her şey mevcut değerini korur. PUT değiştirir: atladığınız her şey temizlenir. Oluşturma ile aynı alanları kabul eder.
PATCHBaşka hiçbir şeye dokunmadan yeniden adlandırın
Bağlantıyı arşivler: bağlantı çalışmayı durdurur ve bir kota yeri açılır, tıklama geçmişi ise korunur. API'de bilerek kalıcı silme yoktur — bir bağlantıyı ve geçmişini yok etmek, açık onay gerektiren bir panel işlemi olarak kalır.
POST/links/{id}/restore
Arşivlenmiş bir bağlantıyı yeniden kullanıma alır. Çalışma alanı etkin bağlantı kotasına zaten ulaşmışsa 403 plan_required döndürür.
GET/links/{id}/eventsSayfalı
Tek bir bağlantıya yapılan ziyaretler, en yeniden eskiye. limit ve offset kabul eder. Ülke her planda dahildir.
Analitik
GET/analytics/summary
Tüm çalışma alanı için temel sayılar: tüm zamanlardaki ve seçilen aralıktaki tıklamalar, tekil ziyaretçiler, QR taramaları, en yoğun gün ve günün saatine ve haftanın gününe göre dağılımlar. days parametresini kabul eder (varsayılan 30, saklama sürenizle sınırlıdır).
Grafiğe hazır günlük tıklama sayıları. Tek bir bağlantıyla sınırlamak için link_id, aralığı belirlemek için days gönderin. Trafik olmayan günler atlanmak yerine sıfır olarak döndürülür; böylece seri her zaman kesintisizdir.
Panelin tek bir bağlantı için gösterdiği her şey tek bir çağrıda: bağlantının kendisi, tıklama toplamları, benzersiz ve geri dönen ziyaretçiler, günlük seri, saat ve hafta günü dağılımları, tüm dağılımlar ve bağlantı bir A/B testi çalıştırıyorsa test sonuç tablosu.
Çalışma alanındaki tüm bağlantıların ham ziyaret akışı, en yeniden eskiye. Bu, GET /visits uç noktasının modern karşılığıdır: aynı veriler, standart zarf, limit ve offset desteği.
Kaydedilen her tıklamada bir JSON yükü almak için bir HTTPS uç noktası kaydedin. Hesap başına en fazla 25. Başarısız teslimatlar otomatik olarak yeniden denenir.
Bir webhook uç noktasını kaldırın. POST /hooks/subscribe ve DELETE /hooks/unsubscribe/{id}, Zapier'in REST Hook akışı için kullanılabilir olmaya devam eder.
Eski
GET/auth/meEski
Orijinal bağlantı testi: kullanıcı kimliğinizi, e-postanızı ve çalışma alanı kimliğinizi/adınızı düz bir nesne olarak döndürür. GET /me aynı kimliği plan sınırlarınız ve özellik işaretlerinizle birlikte döndürür ve yeni kodlar için daha iyi bir seçimdir.
Kimlik yerine domain ve slug ile belirtilen tek bir bağlantının tıklama toplamları. Her iki parametre de zorunludur. Kimliği biliyorsanız GET /links/{id} ve GET /analytics/links/{id} aynı işi görür.
Sorgu parametreleri
domainstring
Ana alan adı veya doğrulanmış özel alan adlarınızdan biri.
Gerekli
slugstring
Başında eğik çizgi olmadan kısa kod.
Gerekli
start_datedate
YYYY-MM-DD, planınızın saklama süresine göre kırpılır.
İsteğe bağlı
end_datedate
YYYY-MM-DD, dahil.
İsteğe bağlı
GET/visitsEski
Çalışma alanındaki en son 50 ziyaret, yalın bir JSON dizisi olarak — zarf olmadan — visit_id, visit_time, link_shortcode ve visitor_* alan adlarıyla. Zapier'in REST Hook "perform list" adımı bunu okur; bu nedenle yapısı sabittir. Yeni geliştirmeler için GET /events kullanın.
GET/links/{id}/visitsEski
Tek bir bağlantıya yapılan en son 50 ziyaret; created_at, ip_address, country, device_type, browser, os ve referrer içeren yalın bir dizi olarak. /visits ile birlikte sabitlenmiştir; yeni geliştirmeler için GET /links/{id}/events kullanın.
POST/hooks/subscribeZapier
REST Hook aboneliği. target_url ve isteğe bağlı bir event (varsayılan link_visited) alır ve oluşturulan aboneliği zarf olmadan, düz biçimde döndürür. POST /hooks standart biçimdeki aynı işlemdir.
Gövde bir JSON nesnesi değildi veya zorunlu bir alan eksikti.
400 invalid_parameter
Bir sorgu parametresi hatalı biçimde veya izin verilen kümenin dışında. details.parameter sorunlu parametreyi belirtir.
401 unauthenticated
Token gönderilmedi. X-API-KEY veya Authorization: Bearer ekleyin.
401 invalid_token
Token hiçbir hesapla eşleşmiyor. Yeniden oluşturulmuş olabilir.
403 plan_required
Hesabın planı bu uç noktayı veya özelliği içermiyor. details.upgrade_url faturalandırma sayfasını gösterir.
403 forbidden
Kimlik doğrulandı ancak izin yok — örneğin bir üyenin yalnızca sahibe özel bir işlemi denemesi.
404 not_found
Bu çalışma alanında böyle bir kaynak yok. Başka bir çalışma alanına ait kimlikler yasak yerine bulunamadı olarak bildirilir.
409 conflict
İstek mevcut durumla çakışıyor — webhook sınırına ulaşıldı veya hesabın henüz bir çalışma alanı yok.
422
Toplu işteki tüm satırlar başarısız olduğunda POST /links/bulk tarafından döndürülür. meta.errors alanını inceleyin.
429 rate_limited
Son bir dakikada 600'den fazla istek. Retry-After saniye kadar bekleyin.
Eski GET /visits ve GET /links/{id}/visits uç noktaları kendi alan adlarıyla yalın bir JSON dizisi döndürür ve bunlar üzerine kurulmuş Zapier entegrasyonları için sabitlenmiştir. Yeni kodlar, standart zarfı kullanan ve sayfalamayı destekleyen GET /events ve GET /links/{id}/events uç noktalarını kullanmalıdır.