Per sviluppatori

Hosting che può gestire da codice

Zinn Digital® è una piattaforma API-first. La stessa API del motore che alimenta la nostra dashboard è quella che riceve: con controllo di versione, incentrata sulle specifiche e documentata al 100% in fase di compilazione, con SDK generati, una CLI, un provider Terraform, webhook firmati e un server MCP integrato. Qualunque cosa utilizzi per lavorare — un terminale, una pipeline, un file di stato o un agente IA — la piattaforma risponde alle Sue esigenze.

Un endpoint API che recapita eventi firmati a diversi listener sottoscritti.
  • 700.000+siti ospitati in tutto il mondo
  • 1Specifica OpenAPI da cui viene generato ogni strumento
  • 4SDK client — TypeScript, Python, PHP, Go
  • OAuth 2.1accesso delimitato e revocabile dell'agente IA

Un'unica API. Ogni superficie si appoggia su di essa.

La maggior parte dei provider di hosting applica un'API a un pannello di controllo a posteriori, e si vede: metà delle funzionalità del pannello non arrivano mai all'esterno. Noi abbiamo operato nel modo opposto. Il dashboard, la console di amministrazione, la CLI, il provider Terraform, il server MCP e le Vostre integrazioni consumano tutti la stessa API del motore. Se potete farlo nel pannello, potete farlo nel codice.

Prima la specifica, non documentato a posteriori

La specifica OpenAPI è la fonte attendibile e nessun endpoint viene rilasciato se non è presente nella specifica. Questa singola regola consente all'API pubblica di essere interamente documentata al momento della compilazione anziché in seguito: non vi sono parti prive di documentazione, poiché un endpoint non documentato semplicemente non può esistere.

Generato, mai gestito manualmente

La documentazione di riferimento interattiva, i quattro SDK client, gran parte della CLI e l'impalcatura del provider Terraform vengono tutti generati da quell'unica specifica. Un'unica sorgente, molti artefatti, sempre sincronizzati: non dovrete mai rincorrere una documentazione che si è discostata dall'implementazione.

Versionato con criteri di deprecazione

Gli endpoint risiedono in /v1 con un criterio di deprecazione pubblicato e un registro delle modifiche. Riceverete una comunicazione scritta prima di qualsiasi modifica, anziché scoprirlo a seguito di una compilazione non riuscita.

Verificato da contratto in CI

I test contrattuali di conformità tra implementazione e specifiche e il linting di OpenAPI vengono eseguiti a ogni modifica. Qualsiasi divergenza tra il codice e il contratto causa l'interruzione della build; in questo modo, la specifica da cui generate il vostro client è esattamente quella che il server rispetta.

Autenticazione, definizione dell'ambito e le insidie della scalabilità

Due vie d'accesso, un unico principio uniforme alla base. Qualunque utilizziate, si applicano gli stessi controlli dei permessi e lo stesso isolamento a livello di database.

Chiavi API, per organizzazione

Le chiavi hanno il formato zdk_<mode>_<prefix>_<secret>. Viene archiviato solo un hash SHA-256 del segreto: non possiamo mostrarvi di nuovo una chiave dopo l'emissione, e non può farlo nemmeno chiunque acceda al nostro database. Le chiavi hanno ambiti di validità, possono essere revocate e sono emesse per organizzazione anziché per persona.

Modalità live e di test, separate tra loro

Le chiavi sandbox sono separate dalle chiavi di produzione ed eseguite in modalità sandbox: nessuna fatturazione reale, nessun provisioning reale. I vostri test di integrazione possono sottoporre l'API a carichi intensi senza spendere denaro né creare server.

OIDC per esseri umani

Le sessioni utente vengono autenticate tramite JWT emessi da Keycloak, verificati rispetto alla chiave pubblica del realm, e si risolvono nello stesso oggetto Principal di una chiave API. Gli endpoint sono vincolati a chiavi di autorizzazione granulari come sites.create o apikeys.manage, verificate per ciascuna organizzazione: un'autorizzazione in un'organizzazione non concede alcun accesso in un'organizzazione separata e non correlata, sebbene si applichi alle organizzazioni nidificate al di sotto di essa.

Sicurezza a livello di riga sottostante

Ogni richiesta del tenant viene eseguita in una transazione con l'ambito dell'organizzazione Postgres impostato dal principal, garantendo che l'isolamento sia applicato dal database e non da un filtro ORM che qualcuno potrebbe dimenticare. Il filtro queryset rimane comunque presente come difesa in profondità.

Costruito per le macchine, non solo per le demo

È facile far apparire una API impeccabile in un file README, ma è difficile garantirne un funzionamento affidabile sotto il traffico reale. Queste sono le parti su cui abbiamo sudato di più, perché sono proprio quelle che mandano in tilt le integrazioni alle tre del mattino.

Un dettaglio che merita di essere sottolineato, poiché definisce il comportamento delle operazioni in blocco: un errore 409 su un dominio duplicato risponde alla domanda "questo hostname è ospitato qui?" per qualsiasi tenant, costituendo un oracolo di enumerazione e un reale rischio di de-anonimizzazione per Footprint-Free. Limitare la velocità di creazione dei siti sarebbe stata una soluzione sbrigativa che avrebbe compromesso del tutto il prodotto di provisioning in blocco. Invece, solo i tentativi respinti di domini duplicati vengono conteggiati nel budget, per ciascun principal. Le creazioni riuscite non vengono mai scalate da tale budget: in questo modo potete eseguire il provisioning in blocco per tutto il giorno, mentre i tentativi di sondaggio vengono bloccati quasi immediatamente.

  • Un wrapper di errore coerente per ogni errore: un codice, un messaggio leggibile, dettagli facoltativi a livello di campo e un request_id che è possibile comunicare all'assistenza. Gli errori di convalida restituiscono 422 con i campi interessati specificati.
  • Chiavi di idempotenza su POST, con il record di riproduzione scritto al commit anziché inline, in modo che un nuovo tentativo non possa mai riprodurre un 201 memorizzato nella cache che fa riferimento a una riga mai sottoposta a commit. Una richiesta non riuscita rilascia immediatamente il blocco in corso, pertanto un 422 non impedisce il Suo nuovo tentativo corretto.
  • Paginazione tramite cursore come keyset su UUIDv7 — stabile in caso di scritture simultanee, senza slittamento della pagina quando vengono inserite righe a metà scansione.
  • RateLimit-Remaining sulle risposte, in modo che un client generato possa ridurre la frequenza in modo intelligente anziché tirare a indovinare.
  • Le risorse fuori ambito restituiscono 404 anziché 403 — un 403 confermerebbe l'esistenza della risorsa. Il filtraggio per un'organizzazione al di fuori del Suo ambito restituisce una pagina vuota per lo stesso motivo.
  • La creazione del sito è una registrazione, non un provisioning: POST /v1/sites restituisce 201 con stato pending e non blocca mai la compilazione. L'evento viene scritto nella transactional outbox nella stessa transazione della riga, pertanto un sito esiste se e solo se è garantita la richiesta del suo provisioning.

SDK, una CLI e un provider Terraform

Tre utenti della stessa specifica, per tre diversi modi di lavorare.

SDK client

Generato per TypeScript, Python, PHP e Go, tiene traccia delle specifiche in modo che un nuovo endpoint arrivi nel Suo linguaggio senza dover attendere un wrapper scritto manualmente.

Zinnector®, la CLI

Configuri l'ossatura di un sito WordPress, lo esegua in locale senza installare nient'altro che Node e lo distribuisca. Zinnector® esegue un controllo preliminare del Suo progetto rispetto allo slot su cui sta per effettuare la distribuzione (versione di PHP, disco, numero di file) e avvisa prima di effettuare il push anziché dopo. Inoltre, esegue l'accesso, elenca i siti, distribuisce, gestisce domini e DNS, legge i servizi di posta, esegue backup, esegue comandi WP-CLI autorizzati, monitora i log in tempo reale e avvia operazioni collettive. Gratuito, con licenza MIT e basato su questa stessa API pubblica.

Il provider Terraform

Gestite siti, domini, record DNS, caselle di posta e piani come infrastruttura come codice. terraform apply esegue il provisioning dell'hosting, e i vostri ambienti diventano riproducibili e revisionabili invece di essere una sequenza di clic che nessuno ha documentato.

Riferimento interattivo

Documentazione generata che potete leggere e chiamare dal browser, che descrive esattamente gli endpoint implementati dal server — poiché entrambi provengono dalla stessa specifica.

Webhook che resistono all'inattività del Suo endpoint

Dietro la piattaforma c'è una solida dorsale di eventi: ogni modifica di stato scrive un evento in una outbox transazionale in Postgres, in modo atomico con la modifica del database, e un relay lo pubblica su NATS JetStream. Gli eventi sono tipizzati e versionati — site.deployed, order.paid, invoice.overdue, backup.completed, abuse.flagged, trial.ending e gli altri.

Iscriviti a ciò che ti interessa

Registri un endpoint come WebhookSubscription e scelga i tipi di eventi che riceve. Un unico flusso alimenta notifiche, analisi, automazioni e la Sua integrazione allo stesso modo: sta utilizzando gli stessi eventi che utilizziamo noi.

Firmato con HMAC

Ogni recapito è firmato con HMAC, consentendovi di verificare che provenga da noi prima di intervenire.

Riproveto con backoff e registrato

I recapiti non riusciti vengono ritentati con un intervallo progressivo e ogni tentativo viene registrato come WebhookDelivery. È possibile esaminare e riprodurre i recapiti dal pannello di controllo invece di inviare un'e-mail all'assistenza chiedendo cosa abbiamo inviato.

Almeno una volta, quindi deduplicare in base all'id

La pipeline funziona deliberatamente secondo il principio «almeno una volta» anziché fingere di essere «esattamente una volta». Un relay che si arresta a metà della pubblicazione vede scadere il proprio lease di rivendicazione e i suoi eventi vengono ripubblicati. Eseguite la deduplicazione sull'ID della busta e il vostro consumer sarà corretto per progettazione.

Caricare il codice sul sito

Un'API è solo metà della storia di uno sviluppatore. L'altra metà è il rilascio.

  • Collegate GitHub, GitLab o Bitbucket tramite OAuth, con le chiavi di distribuzione conservate nell'archivio credenziali e non in un file di configurazione.
  • Push attiva una pipeline di compilazione e distribuzione, con mappatura da branch ad ambiente (da main a production, da staging a staging) e passaggi di compilazione per stack per composer e npm.
  • Ripristini una versione precedente in caso di problemi con la distribuzione.
  • Clonazione di staging e pubblicazione in tempo reale, così che ogni modifica venga verificata in un ambiente reale prima di raggiungere i visitatori.
  • SFTP per sito sotto isolamento CageFS, in modo che ogni tenant veda solo i propri file, oltre a una shell SSH confinata (jailed) sulla piattaforma condivisa.
  • wp-cli dal terminale del pannello e tramite SSH.
  • VS Code nel browser tramite code-server: un editor completo con git, per modificare direttamente i file del sito.
  • Versione di PHP per sito, impostazioni PHP modificabili, estensioni per sito, variabili d'ambiente e vero cron insieme a WP-cron.

Quattro modi per lavorare su un sito

L'API è una porta. Queste sono le altre quattro, e ognuna di esse è inclusa nel piano invece di essere venduta come livello sviluppatore.

L'editor web

VS Code nel browser, aperto dalla pagina del sito nel pannello di controllo, consente di modificare i file reali di quel sito con git integrato e l'intero editor all'interno dello stesso isolamento CageFS del Suo accesso SFTP. Modifica il sito LIVE: non esiste alcuna copia di staging intermedia, quindi un file salvato diventa pubblico nel momento stesso in cui viene scritto, anche se un file statico potrebbe continuare a essere distribuito dalla cache CDN per un massimo di quattro ore.

Zinnector®, la CLI

Gratuito, con licenza MIT e basato su questa stessa API pubblica. Crea lo scaffolding di un sito WordPress, lo esegua sulla Sua macchina, effettui i controlli preliminari rispetto allo slot su cui sta per effettuare il deploy — versione di PHP, disco, numero di file — ed esegua il deploy. Richiede Node 24 o versioni successive.

Il server MCP

Un unico catalogo di strumenti, affinché il client di IA che già utilizzate possa operare sui vostri siti tramite la stessa API e le stesse autorizzazioni impiegate dalla dashboard. Lo stesso server a cui si connette il vostro client è quello integrato nell'editor web. In sola lettura finché non stabilite diversamente.

Accesso sviluppatore per sito

Il lavoro per i clienti non richiede la Sua password. Inviti qualcuno tramite indirizzo e-mail e otterrà esattamente un solo sito: accederà con la propria identità, con un ruolo di visualizzatore, editor o gestore, e tutti gli altri siti risponderanno 404 prima dell'esecuzione di qualsiasi gestore — una politica di sicurezza a livello di riga di Postgres e una barriera a livello di richiesta, non un singolo controllo. Il proprietario dell'account la concede e la revoca con un solo clic, con effetto a partire dalla richiesta successiva.

E la stessa API che il vostro agente IA può utilizzare

Offriamo la piattaforma come server MCP ospitato: un sottile adattatore di protocollo sopra l'API del motore che riutilizza lo stesso catalogo di azioni, l'RBAC e la traccia di controllo. Collegate Claude Code, Cursor, ChatGPT, Claude Desktop o qualsiasi client compatibile con MCP una sola volta e ogni funzionalità aggiunta all'API diventerà automaticamente disponibile per esso.

L'agente ottiene tre elementi: Strumenti (gli stessi endpoint API, nessuna logica parallela che possa divergere), Risorse (stato del sito in sola lettura, configurazione, log recenti, metriche, tempo di attività e articoli della Knowledge Base, in modo da eseguire diagnosi con dati reali prima di agire) e Prompt (modelli di flusso di lavoro pubblicati come "diagnostica questo sito" o "prepara una migrazione").

La sicurezza segue gli stessi principi dell'autenticazione: OAuth 2.1, token associati alla Sua organizzazione e autorizzazioni RBAC con sicurezza a livello di riga applicata, delimitate e revocabili per singolo strumento, sandbox separata dalla produzione. Le azioni distruttive — eliminazione, sospensione, fatturazione, spese elevate — richiedono una conferma esplicita o una policy di approvazione umana. I limiti di frequenza e i tetti di spesa vincolano le azioni a pagamento attivate dall'IA, e ogni chiamata MCP viene registrata a fini di audit con identità, strumento, argomenti e risultato.

Supportiamo il protocollo invece di integrare ogni applicazione singolarmente, il che significa che la Vostra scelta di strumenti di intelligenza artificiale può cambiare senza che cambi la Vostra integrazione di hosting.

Domande frequenti

L'API pubblica è la stessa utilizzata dalla dashboard?

Sì — è la stessa API del motore, pubblicata e rafforzata. La dashboard, la console di amministrazione, la CLI, il provider Terraform, il server MCP e i webhook sono tutti consumer di un'unica superficie, motivo per cui l'API non è in ritardo rispetto al pannello.

Posso testare un'integrazione senza spendere denaro o creare server reali?

Sì. Le chiavi Sandbox vengono emesse separatamente dalle chiavi di produzione e funzionano in modalità di test: nessuna fatturazione reale e nessun provisioning reale. Indirizzi la Sua CI alle credenziali sandbox ed esegua l'intero ciclo di richiesta e risposta in tutta sicurezza.

Come posso evitare che un nuovo tentativo crei un duplicato di un elemento?

Inviate una Idempotency-Key nella vostra richiesta POST. Il record di riproduzione viene scritto al momento del commit anziché inline, pertanto un nuovo tentativo non può mai riprodurre un successo memorizzato nella cache per una riga di cui non è stato effettivamente eseguito il commit, e una richiesta non riuscita rilascia immediatamente il proprio blocco in modo che il nuovo tentativo corretto non venga trattenuto. Il recapito dei webhook è per progettazione di tipo at-least-once: eseguite la deduplicazione in base all'envelope id dal vostro lato.

Posso concedere a una sola chiave API l'accesso a tutte le organizzazioni dei miei clienti?

Non oggi. Le chiavi API vengono emesse per organizzazione, quindi un'integrazione che comprende diverse organizzazioni di clienti dispone di una chiave per ciascuna di esse. Anche i permessi vengono verificati per organizzazione per i principal utente: possedere sites.create in un'organizzazione non concede alcun accesso in un'organizzazione separata e non correlata, sebbene si applichi alle organizzazioni nidificate al di sotto di essa. Ciò è intenzionale: limita una chiave compromessa alla propria organizzazione e alle sotto-organizzazioni al di sotto di essa, non all'intera piattaforma.

Cosa consente effettivamente il ruolo predefinito Sviluppatore?

Il ruolo dev comprende la lettura dell'organizzazione, la gestione delle chiavi API, la visualizzazione e la creazione di siti, il loro riavvio, lo svuotamento della loro cache e la visualizzazione e la risposta ai ticket. Esclude deliberatamente il controllo della fatturazione. Tenga presente che i permessi di distribuzione e pubblicazione non ne fanno parte: se un membro del team ne ha bisogno, assegni un ruolo che li preveda anziché presumere che Developer sia il ruolo tecnico più ampio.

Cosa succede ai miei webhook se il mio endpoint non è attivo per un'ora?

Le consegne vengono ritentate con backoff e ogni tentativo viene registrato come WebhookDelivery ispezionabile. A monte, gli eventi vengono scritti in una outbox transazionale nella stessa transazione di database della modifica stessa, in modo che nulla vada perso mentre un consumer non è disponibile: un consumer inattivo accumula ritardo, non interrompe mai il producer, e potete rieseguire le consegne dal pannello di controllo una volta tornati.

Quanto costa iniziare a sviluppare con esso?

Inizia una prova gratuita di 14 giorni di Footprint-Free Hosting senza carta di credito, fino a 5 siti. I piani a pagamento di Footprint-Free partono da $6/mo per PBN 5. Ogni piano include una garanzia di rimborso di 30 giorni, migrazioni gratuite e nessun vincolo di fornitore.

Legga le specifiche, quindi proceda allo sviluppo in conformità ad esse

API basata su specifiche, SDK generati, una CLI, un provider Terraform, webhook firmati e un server MCP — sull'hosting che abbiamo creato per oltre 700.000 siti in tutto il mondo. Iniziate con una prova di 14 giorni senza carta di credito e senza dettagli di pagamento.

Inizia gratis

Plugin WordPress con cui il Suo agente di intelligenza artificiale può lavorare

Ognuno di questi plugin trasforma il Suo sito WordPress in un server MCP, in modo che Claude, Cursor, VS Code e altri assistenti IA possano svolgere lavoro reale su di esso, effettuando l'accesso come Lei e limitandosi a ciò che Le è permesso fare.

Tutta la documentazione MCP e API per gli sviluppatori →