Belgeler

API referansı

Bu, kapalı beta boyunca Gurulu Gerçek Katmanı'nın herkese açık REST yüzeyidir. Yönetici, iç operasyon ve platform gözlemlenebilirlik uçları burada listelenmez — onlar operatör kimlik bilgileriyle sınırlıdır ve müşteri sözleşmesinin parçası değildir.

İki temel adres:

  • Veri düzlemihttps://ingest.gurulu.io. Olay kabul eden her şey.
  • Kontrol düzlemihttps://api.gurulu.io. Geri kalan her şey.

Kimlik doğrulama

İki kimlik bilgisi tipi:

  • Bearer JWT. Giriş yapmış bir kullanıcıya sihirli bağlantı (birincil) ya da OAuth (Google veya GitHub, PKCE S256) ile verilir. İnsanın yaptığı kontrol düzlemi çağrılarında kullanılır.
  • API anahtarı. İki çeşit. pk_live_* herkese açık anahtardır — tarayıcı koduna konması güvenlidir, tarayıcı SDK'sı kullanır. sk_live_* gizli anahtardır — tarayıcıya asla gitmez, sunucu SDK'sı ve doğrudan REST çağıranlar kullanır.

Tüm yanıtlar UTF-8 JSON'dur. Hatalar RFC 7807 application/problem+json biçimini izler.

Kimlik doğrulama uçları

POST   /v1/auth/magic-link             Sihirli bağlantı e-postası iste
POST   /v1/auth/magic-link/verify      Sihirli bağlantı jetonunu oturuma çevir
GET    /v1/auth/oauth/:provider        OAuth başlat (Google veya GitHub)
POST   /v1/auth/session/refresh        Erişim jetonunu tazele
POST   /v1/auth/session/revoke         Oturumu iptal et
POST   /v1/auth/api-keys               Yeni API anahtarı üret

Alım — olay gönderme

Herkese açık veri düzlemi. Doğrulama kapısı burada koşar.

POST   /v1/track                       Tek bir olay gönder
POST   /v1/batch                       Tek çağrıda N olaya kadar gönder
POST   /v1/identify                    Bir anonymous_id'yi person_id'ye bağla
POST   /v1/alias                       İki kimliği birleştir
POST   /v1/webhook/:provider           Bir tedarikçi webhook'u al

Gövdedeki her olay doğrulama kapısını geçmelidir. Olay başına olası sonuçlar:

  • accept — kayıtlı, iyi biçimli, bilinen. Geçer.
  • warn — ölümcül olmayan bir sorunla kabul edildi (beklenmeyen özellik tipi, kullanımdan kaldırılmış anahtar).
  • quarantine — inceleme için tutuldu. Alt akış hedeflerine ulaşmaz.
  • reject — reddedildi. Yanıtta gerekçesiyle döner.

Kayıt — sözleşme

Kayıt, olay adları ve şekilleri için gerçeğin kaynağıdır. Olay anahtarları ^[a-z0-9_]+$ desenine uymalıdır.

GET    /v1/registry/events             Olay sözleşmelerini listele
POST   /v1/registry/events             Yeni olay sözleşmesi oluştur
GET    /v1/registry/events/:key        Tek bir sözleşmeyi oku
POST   /v1/registry/validate           Bir yükü kayda göre doğrula
GET    /v1/registry/code-gen           Bir ortam için tipli kod üretimi al
GET    /v1/registry/packs              Sektör başlangıç paketlerini listele

Kod üretimi TypeScript, Python ve Swift için tipli bağlamalar döner. CLI (gurulu pull) bu uçları sarmalar ve sonucu deponuza yazar.

Kimlik — omurga

Yedi adımlı çözüm, üç düzeyli güven, yalnızca ekleme yapılan birleştirme defteri. Her birleştirme geri alınabilir.

POST   /v1/identity/resolve            Bir tanımlayıcı kümesini person_id'ye çöz
GET    /v1/identity/person/:id         Bir kişi kaydını oku
GET    /v1/identity/person/:id/timeline   Bir kişinin olay zaman çizelgesini al
POST   /v1/identity/merge              İki kaydı açıkça birleştir
GET    /v1/identity/merge-ledger       Yalnızca eklenen birleştirme günlüğünü oku

Sağlık — kalite sinyali

Olay sağlığı: anomali tespiti, yinelenen ayıklama, kapsam, CAPI uyumsuzluğu.

GET    /v1/health/events               Çalışma alanı genelinde sağlık özeti
GET    /v1/health/events/:key          Olay başına sağlık
GET    /v1/health/anomalies            Tespit edilen anomaliler (hacim, şema, gecikme)
GET    /v1/health/coverage             Yüzey başına kapsam puanı
POST   /v1/health/dedup-check          İki kayıt yinelenmiş görünüyor mu sor

Atıf — kredi ve köken

Müşterinin tanımladığı politika, çok modelli (ilk, son, doğrusal, zamanla azalan, konum, veri odaklı) ve sonuç başına tam köken izi.

POST   /v1/attribution/policy                       Atıf politikasını tanımla / güncelle
POST   /v1/attribution/compute                      Bir tarih aralığı için atfı yeniden hesapla
GET    /v1/attribution/touchpoints/:personId        Bir kişi için dikkate alınan temas noktaları
GET    /v1/attribution/explain/:outcomeId           Belirli bir sonuç için açıklama izi

explain ucu şunları döner: hangi temas noktaları dikkate alındı, hangileri dışlandı, hangi model uygulandı ve alternatif modeller neye kredi verirdi.

İzin — GDPR, KVKK, CCPA

GCM v2 kategorileri. DSR dışa aktarma ve unutulma, 60 saniyelik SLA kuyruğunda.

POST   /v1/consent                     Bir kişi için izin durumunu kaydet
GET    /v1/consent/:personId           Güncel izni oku
POST   /v1/consent/dsr/export          Veri dışa aktarma talebini kuyruğa al
POST   /v1/consent/dsr/forget          Unutulma talebini kuyruğa al

SDK'lar

Doğrudan REST kullanmak sorun değil. Çoğu ekip SDK'ları kullanıyor:

  • @gurulu/web — bağımlılıksız tarayıcı paketi (8,1 KB gzip). Beş otomatik yakalama sinyali, identify, track, izin, kayıt onayı.
  • @gurulu/node — Node 20+, Bun ve edge için sunucu SDK'sı. 23 tedarikçi için webhook doğrulayıcı. Hono, Express, Fastify için ara katman.
  • @gurulu/cligurulu init / pull / push / validate / doctor. Kaydı Git akışına bağlar.
  • @gurulu/mcp-server — Cursor, Claude Code, Lovable için MCP. Araçlar: list_events, add_event, validate_event. AI editörün olay adı tahmin etmeyi bırakır.

Hatalar

Tüm hatalar application/problem+json biçimindedir ve şunları taşır:

  • type — hata sınıfı için değişmeyen bir URL tanımlayıcısı.
  • title — kısa insan açıklaması.
  • status — HTTP durum kodu.
  • detail — bu istekte tam olarak ne ters gitti.
  • instance — hata bildirirken aktarabileceğin opak istek tanımlayıcısı.

Doğrulama kapısı reddi type: "https://gurulu.io/errors/contract-violation" biçimindedir. Yanıt gövdesi hangi alanların neden düştüğünü listeler.

Durum

Uç yüzeyinin tamamı bugün yaklaşık 270 rota; bu sayfa müşteriye dönük herkese açık alt kümeyi listeler. Operatör ve platform uçları müşteri sözleşmesinin parçası değildir ve haber verilmeden değişebilir. Yukarıdaki liste kapalı beta için değişmezdir.

Bu uçların arkasındaki kavramsal model için Nasıl çalışır sayfasına bak.