Geliştiriciler için

Kod ile yönetebileceğiniz barındırma

Zinn Digital®, API öncelikli bir platformdur. Kontrol panelimize güç veren aynı motor API'si, aldığınız API'dir — sürümlendirilmiş, spesifikasyon öncelikli ve derleme sırasında %100 belgelenmiş olup üzerinde oluşturulmuş SDK'lar, bir CLI, bir Terraform sağlayıcısı, imzalı web kancaları ve bir MCP sunucusu yer alır. Çalışmak için ne kullanırsanız kullanın — bir terminal, bir işlem hattı, bir durum dosyası veya bir yapay zekâ aracısı — platform buna yanıt verir.

İmzalanmış olayları abone olan birkaç dinleyiciye ileten bir API uç noktası.
  • 700.000+dünya genelinde barındırılan siteler
  • 1Her aracın kendisinden oluşturulduğu OpenAPI spesifikasyonu
  • 4istemci SDK'ları — TypeScript, Python, PHP, Go
  • OAuth 2.1kapsamı belirlenmiş, iptal edilebilir yapay zeka aracısı erişimi

Tek bir API. Her yüzey onun üzerinde çalışır.

Çoğu barındırma sağlayıcısı, bir kontrol paneline sonradan bir API ekler ve bu durum kendini belli eder; panelin özelliklerinin yarısı hiçbir zaman dışarıya aktarılmaz. Biz ise tam tersi bir yaklaşımla inşa ettik. Kontrol paneli, yönetici konsolu, CLI, Terraform sağlayıcısı, MCP sunucusu ve kendi entegrasyonlarınızın tümü aynı motor API'sini kullanır. Panelde yapabildiğiniz her şeyi kod içinde de yapabilirsiniz.

Önce şartname, sonradan belgelenmiş değil

OpenAPI spesifikasyonu tek doğruluk kaynağıdır ve spesifikasyonda yer almadığı sürece hiçbir uç nokta kullanıma sunulmaz. Bu tek kural, genel API'nin sonradan değil, derleme zamanında eksiksiz şekilde belgelenmesini sağlar — belgelenmemiş hiçbir köşe yoktur, çünkü belgelenmemiş bir uç nokta var olamaz.

Oluşturuldu, hiçbir zaman elle yönetilmez

Etkileşimli referans belgeleri, dört istemci SDK'sı, CLI'nin büyük bölümü ve Terraform sağlayıcı iskeleti tamamen bu tek belirtimden oluşturulur. Tek kaynak, birçok yapıt, her zaman senkronize — uygulamadan uzaklaşmış bir belgenin peşinden asla koşmazsınız.

Kullanımdan kaldırma politikasıyla sürümlendirilmiş

Uç noktalar, yayınlanmış bir kullanımdan kaldırma politikası ve değişiklik günlüğü ile birlikte /v1 altında yer alır. Bir şeyi başarısız bir derleme sonucunda fark etmek yerine, değişiklik yapılmadan önce size yazılı olarak bildirilir.

CI'da sözleşme testi yapıldı

Uygulama ile spesifikasyon arasındaki sözleşme testleri ve OpenAPI denetimi her değişiklikte çalışır. Kod ile sözleşme arasındaki uyumsuzluk derlemenin başarısız olmasına yol açar — böylece istemcinizi oluşturduğunuz spesifikasyon, sunucunun gerçekten uyguladığı spesifikasyon olur.

Kimlik doğrulama, kapsam belirleme ve ölçeklendirmede karşılaşılan tuzaklar

İki giriş yolu, arkalarında tek bir yeknesak ilke. Hangisini kullanırsanız kullanın, aynı izin kontrolleri ve veritabanı düzeyinde aynı yalıtım geçerlidir.

Kuruluş başına API anahtarları

Anahtarlar zdk_<mode>_<prefix>_<secret> biçimindedir. Gizli kısmın yalnızca SHA-256 özeti saklanır — anahtar oluşturulduktan sonra onu size tekrar gösteremeyiz ve veritabanımıza erişen hiç kimse de gösteremez. Anahtarlar kapsamlar içerir, iptal edilebilir ve kişi başına değil kuruluş başına verilir.

Canlı ve test modları ayrı tutulur

Sandbox anahtarları üretim anahtarlarından ayrıdır ve sandbox modunda çalışır: gerçek faturalandırma yok, gerçek kaynak tahsisi yok. Entegrasyon testleriniz para harcamadan veya sunucu oluşturmadan API'yi yoğun şekilde test edebilir.

İnsanlar için OIDC

Kullanıcı oturumları, Keycloak tarafından verilen ve alan adı (realm) genel anahtarına karşı doğrulanan JWT'ler ile kimlik doğrulaması yapar ve bir API anahtarının yaptığı ile aynı Principal nesnesine çözümlenir. Uç noktalar, kuruluş başına kontrol edilen siteler.create veya apikeys.manage gibi ayrıntılı izin anahtarları üzerinde denetim uygular; bir kuruluştaki izin, altında iç içe geçmiş kuruluşlar için geçerli olsa da, ayrı ve ilişkisiz bir kuruluşta hiçbir erişim sağlamaz.

Altta satır düzeyinde güvenlik

Her kiracı isteği, Postgres kuruluş kapsamı sorumlu varlıktan (principal) ayarlanmış olarak bir işlem (transaction) içinde çalışır; böylece yalıtım, birinin unutabileceği bir ORM filtresi tarafından değil, veritabanı tarafından zorunlu kılınır. Queryset filtresi, derinlemesine savunma olarak hâlâ mevcuttur.

Yalnızca demolar için değil, makineler için tasarlandı

Bir API'nin README dosyasında iyi görünmesini sağlamak kolay, gerçek trafik altında düzgün çalışmasını sağlamak ise zordur. Gece saat üçte entegrasyonları bozan kısımlar tam da bunlar olduğu için, biz en çok bu kısımlar üzerinde ter döktük.

Toplu işlemlerin nasıl çalıştığını şekillendirdiği için belirtmeye değer bir ayrıntı: yinelenen etki alanında alınan bir 409 hatası, herhangi bir kiracı için "bu ana makine adı burada mı barındırılıyor?" sorusuna yanıt verir; bu da bir numaralandırma kâhini (enumeration oracle) ve Footprint-Free için gerçek bir kimlik açığa çıkarma riskidir. Site oluşturmayı kısmak (throttling) tembelce bir çözüm olurdu ve toplu kaynak sağlama ürününü tamamen bozardı. Bunun yerine, sorumlu taraf başına yalnızca reddedilen yinelenen etki alanı denemeleri kotalandırılır. Başarılı oluşturmalar asla buna dahil edilmez — böylece gün boyu toplu olarak kaynak sağlayabilirsiniz ve yoklama girişimleri neredeyse anında sonlanır.

  • Her hatada tutarlı bir hata kapsayıcısı: bir kod, anlaşılır bir mesaj, isteğe bağlı alan düzeyinde ayrıntılar ve destek ekibine iletebileceğiniz bir request_id. Doğrulama hataları, sorunlu alanlar belirtilerek 422 kodunu döndürür.
  • POST isteklerindeki idempotentlik anahtarları, yeniden yürütme kaydı satır içi yerine tamamlama (commit) anında yazılır — böylece yeniden deneme, hiçbir zaman tamamlanmamış bir satırı belirten önbelleğe alınmış bir 201 yanıtını asla yeniden yürütemez. Başarısız bir istek, yürütme sırasındaki kilidini anında serbest bırakır; böylece 422, düzeltilmiş yeniden denemenizi engellemez.
  • UUIDv7 üzerinde anahtar kümesi olarak imleç sayfalaması — eşzamanlı yazmalar altında kararlıdır, tarama sırasında satırlar eklendiğinde sayfa kayması yaşanmaz.
  • Tahmin etmek yerine oluşturulan bir istemcinin akıllıca geri çekilebilmesi için yanıtlarda RateLimit-Remaining.
  • Kapsam dışı kaynaklar 403 yerine 404 döndürür; 403, kaynağın var olduğunu doğrular. Kapsamınızın dışındaki bir kuruluşa göre filtreleme yapmak da aynı nedenden ötürü boş bir sayfa döndürür.
  • Site oluşturma bir provizyon değil, kayıttır: POST /v1/sites, pending durumuyla 201 döndürür ve derleme işlemini asla engellemez. Olay, satırla aynı işlem içinde işlemsel giden kutusuna (transactional outbox) yazılır; bu nedenle bir site yalnızca ve yalnızca provizyonunun talep edileceği garanti edildiğinde var olur.

SDK'lar, bir CLI ve bir Terraform sağlayıcısı

Üç farklı çalışma yöntemi için aynı belirtimin üç tüketicisi.

İstemci SDK'ları

TypeScript, Python, PHP ve Go için oluşturulmuştur; spesifikasyonu takip eder, böylece yeni bir uç nokta elle yazılmış bir sarmalayıcıyı beklemeden dilinize ulaşır.

Zinnector®, CLI

Bir WordPress sitesi yapılandırın, yalnızca Node kurulu halde yerel olarak çalıştırın ve dağıtın. Zinnector®, dağıtım yapmak üzere olduğunuz yuvaya göre projenizi önceden denetler — PHP sürümü, disk, dosya sayısı — ve sonrasında değil, göndermeden önce uyarır. Ayrıca oturum açar, siteleri listeler, dağıtır, alan adlarını ve DNS'i yönetir, e-posta hizmetlerini okur, yedek alır, izin verilen WP-CLI komutlarını çalıştırır, günlükleri anlık olarak izler ve toplu işlemleri başlatır. Ücretsiz, MIT lisanslı ve bu ortak API üzerinde geliştirilmiştir.

Terraform sağlayıcısı

Siteleri, alan adlarını, DNS kayıtlarını, posta kutularını ve planları kod olarak altyapı şeklinde yönetin. terraform apply barındırma hizmetini hazırlar ve ortamlarınız, kimsenin kaydetmediği bir tıklama dizisi yerine yeniden üretilebilir ve incelenebilir hale gelir.

Etkileşimli referans

Sunucunun uyguladığı uç noktaları tam olarak açıklayan, tarayıcıdan okuyabileceğiniz ve çağırabileceğiniz oluşturulmuş belgeler — çünkü her ikisi de aynı belirtimden gelir.

Uç noktanız kapalıyken bile varlığını koruyan web kancaları

Platformun arkasında dayanıklı bir olay omurgası bulunur: her durum değişikliği, veritabanı değişikliğiyle atomik olarak Postgres içindeki bir işlemsel giden kutusuna (outbox) bir olay yazar ve bir aktarıcı bunu NATS JetStream'e yayınlar. Olaylar tiplendirilmiş ve sürümlendirilmiştir — site.deployed, order.paid, invoice.overdue, backup.completed, abuse.flagged, trial.ending ve diğerleri.

İlginizi çeken konulara abone olun

Bir uç noktayı WebhookSubscription olarak kaydedin ve alacağı etkinlik türlerini seçin. Tek bir akış bildirimleri, analizleri, otomasyonları ve entegrasyonunuzu aynı şekilde besler — bizim tükettiğimiz etkinliklerin aynısını tüketirsiniz.

HMAC ile imzalandı

Her teslimat HMAC ile imzalanır; böylece işlem yapmadan önce bizden geldiğini doğrulayabilirsiniz.

Gecikmeyle yeniden denendi ve günlüğe kaydedildi

Başarısız olan teslimatlar artan aralıklarla yeniden denenir ve her deneme bir WebhookDelivery olarak kaydedilir. Ne gönderdiğimizi sormak için destek ekibine e-posta göndermek yerine, teslimatları kontrol panelinden inceleyebilir ve yeniden oynatabilirsiniz.

En az bir kez, bu nedenle id üzerinden tekilleştirin

İşlem hattı, tam olarak bir kez (exactly-once) gibi davranmak yerine kasıtlı olarak en az bir kez (at-least-once) prensibiyle tasarlanmıştır. Yayınlama sırasında kapanan bir aktarıcının talep kirası sona erer ve olayları yeniden yayınlanır. Envelope id üzerinden tekilleştirme yapın; tüketiciniz tasarım gereği doğru çalışacaktır.

Kodun siteye aktarılması

Bir API, bir geliştiricinin hikayesinin yalnızca yarısıdır. Diğer yarısı ise yayına almaktır.

  • Dağıtım anahtarlarının bir yapılandırma dosyasında değil, kimlik bilgisi deposunda tutulmasıyla GitHub, GitLab veya Bitbucket'ı OAuth üzerinden bağlayın.
  • Push işlemi, dal-ortam eşlemesi (main için production, staging için staging) ve composer ile npm için yığın başına derleme adımları içeren bir derleme ve dağıtım işlem hattını tetikler.
  • Dağıtım başarısız olduğunda önceki bir sürüme geri dönün.
  • Değişikliğin ziyaretçilere ulaşmadan önce gerçek bir ortamda kanıtlanması için hazırlık klonu ve canlıya aktarma.
  • Her kiracının yalnızca kendi dosyalarını görebilmesi için CageFS yalıtımı altında site başına SFTP ve paylaşılan platformda kısıtlanmış (jailed) bir SSH kabuğu.
  • Panel terminalinden ve SSH üzerinden wp-cli.
  • code-server aracılığıyla tarayıcıda VS Code — sitenin dosyalarını doğrudan düzenleyen, git özellikli eksiksiz bir düzenleyici.
  • Site başına PHP sürümü, düzenlenebilir PHP ayarları, site başına uzantılar, ortam değişkenleri ve WP-cron'un yanı sıra gerçek cron.

Bir sitede çalışmanın dört yolu

API kapılardan biridir. Diğer dördü bunlardır ve her biri geliştirici katmanı olarak satılmak yerine plana dahil edilmiştir.

Web düzenleyicisi

Kontrol panelindeki site sayfasından açılan tarayıcıdaki VS Code, yerleşik git ve SFTP erişiminizle aynı CageFS hapsi içindeki tüm düzenleyiciyle o sitenin gerçek dosyalarını düzenler. CANLI siteyi düzenler — arada hazırlık kopyası yoktur, bu nedenle kaydettiğiniz bir dosya yazıldığı anda herkese açık hale gelir; ancak statik bir dosya dört saate kadar CDN önbelleğinden sunulmaya devam edebilir.

Zinnector®, CLI

Ücretsiz, MIT lisanslı ve aynı genel API üzerinde inşa edilmiştir. Bir WordPress sitesi iskeleti oluşturun, kendi makinenizde çalıştırın, dağıtım yapacağınız yuvaya göre ön kontrollerini yapın — PHP sürümü, disk, dosya sayısı — ve dağıtın. Node 24 veya daha yenisini gerektirir.

MCP sunucusu

Tek bir araç kataloğu; böylece halihazırda kullandığınız yapay zeka istemcisi, kontrol panelinin kullandığı aynı API ve aynı izinler aracılığıyla sitelerinizde çalışabilir. Kendi istemcinizin bağlandığı sunucu, web düzenleyicisine bağlı olan sunucudur. Siz aksini belirtmedikçe salt okunurdur.

Site başına geliştirici erişimi

Müşteri çalışması parolanızı gerektirmez. Birini e-posta adresiyle davet edin; tam olarak tek bir siteye erişim sağlasın: Görüntüleyici, düzenleyici veya yönetici rolüyle kendi adına oturum açar ve herhangi bir işleyici çalışmadan önce diğer tüm siteler 404 yanıtı verir — tek bir kontrol değil, bir Postgres satır düzeyinde güvenlik politikası ve istek düzeyinde bir çit. Hesap sahibi bunu tek bir tıklamayla verir ve iptal eder, bir sonraki isteklerinde geçerli olur.

Ve yapay zeka aracınızın kullanabileceği aynı API

Platformu barındırılan bir MCP sunucusu olarak sunuyoruz: motor API'si üzerinde aynı eylem kataloğunu, RBAC'yi ve denetim kaydını yeniden kullanan ince bir protokol bağdaştırıcısı. Claude Code, Cursor, ChatGPT, Claude Desktop veya MCP özellikli herhangi bir istemciyi bir kez bağlayın; API'ye eklediğimiz her yetenek otomatik olarak onun için kullanılabilir hale gelecektir.

Aracı üç şey alır: Tools (aynı API uç noktaları, sapma gösterecek paralel bir mantık yok), Resources (eyleme geçmeden önce gerçek verilerle teşhis koyabilmesi için salt okunur site sağlığı, yapılandırma, son günlükler, metrikler, çalışma süresi ve KB makaleleri) ve Prompts ("diagnose this site" veya "prepare a migration" gibi yayınlanmış iş akışı şablonları).

Güvenlik, kimlik doğrulama ile aynı mantıkla çalışır: OAuth 2.1, kuruluşunuza bağlı belirteçler ve satır düzeyinde güvenlik uygulanan, her araç için kapsamı belirlenebilen ve iptal edilebilen RBAC izinleri, üretimden ayrılmış korumalı alan. Yıkıcı eylemler — silme, askıya alma, faturalandırma, büyük harcamalar — açık onay veya insan onay politikası gerektirir. İstek sınırları ve harcama limitleri yapay zekâ tarafından tetiklenen ücretli eylemleri sınırlar ve her MCP çağrısı kimlik, araç, bağımsız değişkenler ve sonuç ile denetim günlüğüne kaydedilir.

Her uygulamayı tek tek entegre etmek yerine protokolü destekliyoruz; bu da barındırma entegrasyonunuzu değiştirmek zorunda kalmadan yapay zekâ araçları tercihinizi değiştirebileceğiniz anlamına gelir.

Sıkça Sorulan Sorular

Genel API, gösterge panelinin kullandığı ile aynı mı?

Evet — yayınlanmış ve güçlendirilmiş aynı motor API'sidir. Kontrol paneli, yönetici konsolu, CLI, Terraform sağlayıcısı, MCP sunucusu ve web kancalarının tümü tek bir yüzeyin tüketicileridir; bu nedenle API panelin gerisinde kalmaz.

Para harcamadan veya gerçek sunucular kurmadan bir entegrasyonu test edebilir miyim?

Evet. Sandbox anahtarları üretim anahtarlarından ayrı olarak verilir ve test modunda çalışır: gerçek faturalandırma ve gerçek kaynak tahsisi yoktur. CI sisteminizi sandbox kimlik bilgilerine yönlendirin ve istek ile yanıt döngüsünün tamamını güvenle test edin.

Yeniden denemenin bir şeyden iki tane oluşturmasını nasıl engelleyebilirim?

POST isteğinizde bir Idempotency-Key gönderin. Yeniden oynatma kaydı satır içi (inline) yerine işleme (commit) anında yazılır; bu sayede bir yeniden deneme, aslında commit edilmemiş bir satır için önbelleğe alınmış bir başarıyı asla yeniden oynatamaz ve başarısız olan bir istek kilidini hemen serbest bırakır, böylece düzeltilmiş yeniden denemeniz bekletilmez. Webhook teslimatı tasarım gereği en az bir kezdir (at-least-once) — kendi tarafınızda envelope id üzerinden tekilleştirme yapın.

Tek bir API anahtarına tüm müşteri kuruluşlarıma erişim izni verebilir miyim?

Bugün değil. API anahtarları kuruluş başına verilir, bu nedenle birkaç istemci kuruluşu kapsayan bir entegrasyon her biri için bir anahtar tutar. İzinler ayrıca kullanıcı asılları için kuruluş başına kontrol edilir: bir kuruluşta sites.create iznine sahip olmak, o kuruluşun altında yer alan kuruluşlar için geçerli olsa da, ayrı ve ilişkisiz bir kuruluşta hiçbir erişim sağlamaz. Bu kasıtlıdır — güvenliği ihlal edilmiş bir anahtarı tüm platforma değil, yalnızca kendi kuruluşuna ve altındaki alt kuruluşlara sınırlar.

Yerleşik Geliştirici rolü gerçekte nelere izin verir?

dev rolü; organizasyonu görüntüleme, API anahtarı yönetimi, siteleri görüntüleme ve oluşturma, siteleri yeniden başlatma, önbelleklerini temizleme ve destek taleplerini görüntüleyip yanıtlama yetkilerini kapsar. Fatura denetimini kasten hariç tutar. Dağıtım (deploy) ve canlıya alma (push-to-live) izinlerinin bu rolün bir parçası olmadığını unutmayın; bir ekip üyesinin bunlara ihtiyacı varsa, Developer rolünün en kapsamlı teknik rol olduğunu varsaymak yerine söz konusu izinleri içeren bir rol atayın.

Uç noktam bir saatliğine kesintiye uğrarsa web kancalarıma ne olur?

Teslimatlar kademeli bekleme süresiyle (backoff) yeniden denenir ve her deneme, inceleyebileceğiniz bir WebhookDelivery olarak kaydedilir. Yukarı akışta olaylar, değişikliğin kendisiyle aynı veritabanı işleminde işlemsel bir giden kutusuna (transactional outbox) yazılır; böylece bir tüketici ulaşılamaz durumdayken hiçbir şey kaybolmaz — çalışmayan bir tüketici geride kalır, üreticiyi asla aksatmaz ve geri döndüğünüzde teslimatları kontrol panelinden tekrar oynatabilirsiniz.

Bununla geliştirmeye başlamanın maliyeti nedir?

Kredi kartsız 14 günlük Footprint-Free Barındırma deneme sürümüyle başlayın — ödeme bilgisi gerekmez, 5 siteye kadar. Ücretli Footprint-Free paketleri PBN 5 için aylık 6 dolardan başlar. Her planda 30 günlük para iade garantisi, ücretsiz taşıma ve sağlayıcıya bağımlılık olmaması avantajı bulunur.

Teknik özellikleri okuyun, ardından buna göre derleyin

Teknik özellik öncelikli API, oluşturulmuş SDK'ler, bir CLI, bir Terraform sağlayıcısı, imzalı web kancaları ve bir MCP sunucusu — dünya çapında 700.000'den fazla site için geliştirdiğimiz barındırma hizmetinde. Kart gerektirmeyen, ödeme bilgisi istemeyen 14 günlük deneme sürümüyle başlayın.

Ücretsiz başlayın

Yapay zeka aracınızın çalışabileceği WordPress eklentileri

Bu eklentilerin her biri WordPress sitenizi bir MCP sunucusuna dönüştürür; böylece Claude, Cursor, VS Code ve diğer yapay zeka asistanları, sizin adınıza oturum açmış olarak ve yalnızca yapmanıza izin verilen işlemlerle sınırlı bir şekilde sitenizde gerçek işler yapabilir.

Geliştiriciler için tüm MCP ve API belgeleri →