Para desenvolvedores

Hospedagem que você pode gerenciar por código

O Zinn Digital® é uma plataforma que prioriza APIs. A mesma API de mecanismo que alimenta nosso painel é a que você recebe — versionada, focada em especificações e 100% documentada no momento da compilação, com SDKs gerados, uma CLI, um provedor Terraform, webhooks assinados e um servidor MCP integrados. Independentemente do que você use para trabalhar — um terminal, um pipeline, um arquivo de estado ou um agente de IA —, a plataforma responde a isso.

Um endpoint de API que entrega eventos assinados a vários ouvintes inscritos.
  • 700.000+sites hospedados em todo o mundo
  • 1Especificação OpenAPI a partir da qual cada ferramenta é gerada
  • 4SDKs de cliente — TypeScript, Python, PHP, Go
  • OAuth 2.1acesso delimitado e revogável de agentes de IA

Uma única API. Todas as superfícies operam sobre ela.

A maioria das hospedagens acopla uma API a um painel de controle depois de pronto, e isso fica evidente — metade dos recursos do painel nunca chega lá fora. Nós construímos da maneira inversa. O painel, o console de administração, a CLI, o provedor Terraform, o servidor MCP e suas próprias integrações consomem a mesma API de engine. Se você pode fazer isso no painel, pode fazer em código.

Primeiro a especificação, não documentado depois

A especificação OpenAPI é a fonte da verdade, e nenhum endpoint é lançado a menos que esteja na especificação. Essa regra única é o que torna a API pública totalmente documentada no momento da compilação, e não posteriormente — não há cantos não documentados, pois um endpoint não documentado simplesmente não pode existir.

Gerado, nunca mantido manualmente

A documentação de referência interativa, os quatro SDKs de cliente, grande parte da CLI e a estrutura de scaffolding do provedor Terraform são todos gerados a partir dessa única especificação. Uma fonte, muitos artefatos, sempre em sincronia — você nunca precisa correr atrás de uma documentação que se distanciou da implementação.

Com controle de versão e política de descontinuação

Os endpoints residem em /v1 com uma política de descontinuação publicada e um registro de alterações. Você é informado por escrito antes de qualquer alteração, em vez de descobri-la por meio de uma falha na compilação.

Testado por contrato em CI

Testes de contrato de implementação versus especificação e linting do OpenAPI são executados a cada alteração. Qualquer divergência entre o código e o contrato faz a compilação falhar — assim, a especificação a partir da qual você gera seu cliente é a especificação que o servidor realmente respeita.

Autenticação, definição de escopo e as armadilhas da escala

Duas maneiras de entrar, um princípio uniforme por trás delas. Qualquer uma que utilizar, as mesmas verificações de permissão e o mesmo isolamento no nível do banco de dados se aplicam.

Chaves de API, por organização

As chaves são semelhantes a zdk_<mode>_<prefix>_<secret>. Apenas um hash SHA-256 do segredo é armazenado — não podemos exibir uma chave novamente após a emissão, e ninguém que acesse nosso banco de dados pode fazê-lo. As chaves possuem escopos, podem ser revogadas e são emitidas por organização, e não por pessoa.

Modos de produção e de teste, mantidos separados

As chaves de sandbox são separadas das chaves de produção e operam no modo sandbox: sem cobrança real, sem provisionamento real. Seus testes de integração podem executar requisições intensivas à API sem gastar dinheiro nem provisionar servidores.

OIDC para humanos

As sessões de usuário são autenticadas com JWTs emitidos pelo Keycloak, verificados com a chave pública do realm, e resolvem para o mesmo objeto Principal que uma chave de API. Os endpoints são controlados por chaves de permissão granulares, como sites.create ou apikeys.manage, verificadas por organização — uma permissão em uma organização não concede acesso a uma organização separada e não relacionada, embora se aplique às organizações aninhadas sob ela.

Segurança em nível de linha abaixo

Cada solicitação de locatário é executada em uma transação com o escopo da organização Postgres definido a partir do principal, de modo que o isolamento é aplicado pelo banco de dados, e não por um filtro ORM que alguém possa esquecer. O filtro de queryset ainda está presente como defesa em profundidade.

Construído para máquinas, não apenas para demonstrações

É fácil fazer uma API parecer boa em um README, mas é difícil garantir seu bom funcionamento sob tráfego real. Foi nessas partes que mais nos dedicamos, porque são elas que quebram integrações às três da manhã.

Um detalhe que vale a pena destacar, pois molda o comportamento das operações em massa: um erro 409 em domínio duplicado responde, para qualquer locatário, à pergunta "este hostname está hospedado aqui?", o que é um oráculo de enumeração e um risco real de desanonimização contra o Footprint-Free. Limitar a taxa de criação de sites seria uma solução simplista e quebraria completamente o produto de provisionamento em massa. Em vez disso, apenas as tentativas rejeitadas de domínios duplicados entram no limite orçado, por entidade principal. Criações bem-sucedidas nunca são debitadas desse limite — portanto, você pode provisionar em massa o dia todo, e as tentativas de sondagem são interrompidas quase imediatamente.

  • Um envelope de erro consistente a cada falha: um código, uma mensagem legível, detalhes opcionais no nível do campo e um request_id que você pode informar ao suporte. Erros de validação retornam 422 com os campos incorretos identificados.
  • Chaves de idempotência no POST, com o registro de repetição gravado no commit em vez de em linha — assim, uma nova tentativa nunca poderá reproduzir um 201 em cache que aponte para uma linha que nunca foi confirmada. Uma solicitação com falha libera seu bloqueio em andamento imediatamente, de modo que um 422 não bloqueia sua nova tentativa corrigida.
  • Paginação por cursor como keyset sobre UUIDv7 — estável em gravações simultâneas, sem desvio de página quando linhas são inseridas no meio da varredura.
  • RateLimit-Remaining nas respostas, para que um cliente gerado possa desacelerar de forma inteligente em vez de adivinhar.
  • Recursos fora do escopo retornam 404 em vez de 403 — um 403 confirmaria a existência do recurso. Filtrar por uma organização fora do seu escopo retorna uma página vazia pelo mesmo motivo.
  • A criação do site é um registro, não um provisionamento: POST /v1/sites retorna 201 com status pending e nunca bloqueia durante o build. O evento é gravado na outbox transacional na mesma transação que a linha, portanto, um site só existe se, e somente se, o seu provisionamento for garantidamente solicitado.

SDKs, uma CLI e um provedor Terraform

Três consumidores da mesma especificação, para três maneiras diferentes de trabalhar.

SDKs do cliente

Gerado para TypeScript, Python, PHP e Go, rastreando a especificação para que um novo endpoint chegue ao seu idioma sem esperar por um wrapper escrito manualmente.

Zinnector®, a CLI

Crie a estrutura de um site WordPress, execute-o localmente com apenas o Node instalado e faça o deploy. O Zinnector® faz uma verificação prévia do seu projeto em relação ao slot em que você está prestes a implantar — versão do PHP, disco, contagem de arquivos — e avisa antes de você enviar, e não depois. Ele também faz login, lista sites, faz deploy, gerencia domínios e DNS, lê serviços de e-mail, realiza backups, executa WP-CLI autorizados, monitora logs em tempo real e dispara operações em massa. Gratuito, sob licença MIT e construído sobre esta mesma API pública.

O provedor do Terraform

Gerencie sites, domínios, registros DNS, caixas de correio e planos como infraestrutura como código. O comando terraform apply provisiona a hospedagem, e seus ambientes tornam-se reproduzíveis e auditáveis, em vez de uma sequência de cliques que ninguém registrou.

Referência interativa

Documentação gerada que você pode ler e chamar pelo navegador, descrevendo exatamente os endpoints que o servidor implementa — porque ambos vêm da mesma especificação.

Webhooks que sobrevivem à inatividade do seu endpoint

Por trás da plataforma está uma espinha dorsal de eventos durável: cada mudança de estado grava um evento em uma outbox transacional no Postgres, atomicamente com a alteração no banco de dados, e um relay o publica no NATS JetStream. Os eventos são tipados e versionados — site.deployed, order.paid, invoice.overdue, backup.completed, abuse.flagged, trial.ending e os demais.

Inscreva-se no que for importante para você

Registre um endpoint como uma WebhookSubscription e escolha os tipos de evento que ele recebe. Um único fluxo alimenta notificações, análises, automações e sua integração da mesma forma — você consome os mesmos eventos que nós.

Assinado com HMAC

Cada envio é assinado com HMAC para que você possa verificar se partiu de nós antes de tomar qualquer medida.

Tentado novamente com recuo e registrado

As entregas com falha são repetidas com recuo progressivo e cada tentativa é registrada como uma WebhookDelivery. Você pode inspecionar e reproduzir entregas a partir do painel em vez de enviar um e-mail para o suporte perguntando o que enviamos.

Pelo menos uma vez, portanto, deduplique pelo id

O pipeline é deliberadamente pelo menos uma vez (at-least-once), em vez de fingir ser exatamente uma vez (exactly-once). Um relay que falha no meio da publicação tem sua concessão de reivindicação expirada e seus eventos republicados. Faça a deduplicação com base no envelope id e o seu consumidor será correto por definição.

Inserindo código no site

Uma API é apenas metade da história de um desenvolvedor. A outra metade é a entrega.

  • Conecte o GitHub, o GitLab ou o Bitbucket por meio de OAuth, com chaves de implantação mantidas no armazenamento de credenciais — não em um arquivo de configuração.
  • O comando Push aciona um pipeline de compilação e implantação, com mapeamento de ramificação para ambiente (main para production, staging para staging) e etapas de compilação por pilha para composer e npm.
  • Reverta para uma versão anterior quando uma implantação apresentar problemas.
  • Clonagem de testes e publicação em produção, para que uma alteração seja comprovada em um ambiente real antes de chegar aos visitantes.
  • SFTP por site sob isolamento CageFS, para que cada locatário veja apenas seus próprios arquivos, além de um shell SSH restrito (jailed) na plataforma compartilhada.
  • wp-cli a partir do terminal do painel e via SSH.
  • VS Code no navegador via code-server — um editor completo com git, editando diretamente os arquivos do site.
  • Versão do PHP por site, configurações editáveis do PHP, extensões por site, variáveis de ambiente e cron real com suporte a WP-cron.

Quatro maneiras de trabalhar em um site

A API é uma porta. Estas são as outras quatro, e cada uma delas está incluída no plano em vez de ser vendida como um nível de desenvolvedor.

O editor web

O VS Code no navegador, aberto a partir da página do site no painel, edita os arquivos reais desse site com git integrado e todo o editor dentro do mesmo isolamento CageFS que o seu acesso SFTP. Ele edita o site ATIVO — não há cópia de testes (staging) intermediária, portanto, um arquivo salvo fica público no momento em que é gravado, embora um arquivo estático possa continuar sendo servido a partir do cache da CDN por até quatro horas.

Zinnector®, a CLI

Gratuito, licenciado sob a MIT e desenvolvido sobre esta mesma API pública. Crie a estrutura de um site WordPress, execute-o em sua própria máquina, faça a validação prévia em relação ao slot no qual você está prestes a realizar a implantação — versão do PHP, disco, contagem de arquivos — e faça a implantação. Requer Node 24 ou mais recente.

O servidor MCP

Um único catálogo de ferramentas, para que o cliente de IA que você já usa possa trabalhar em seus sites por meio da mesma API e das mesmas permissões usadas pelo painel. O mesmo servidor ao qual seu próprio cliente se conecta é o que está conectado ao editor da web. Somente leitura até que você defina o contrário.

Acesso de desenvolvedor por site

O trabalho do cliente não precisa da sua senha. Convide alguém por endereço de e-mail e essa pessoa terá acesso a exatamente um site: ela fará login como ela mesma, com a função de visualizador, editor ou gerente, e todos os outros sites responderão com 404 antes da execução de qualquer manipulador — uma política de segurança em nível de linha do Postgres e uma barreira em nível de solicitação, e não uma verificação simples. O proprietário da conta concede e revoga o acesso com um clique, com efeito na solicitação seguinte.

E a mesma API que seu agente de IA pode usar

Disponibilizamos a plataforma como um servidor MCP hospedado: um adaptador de protocolo leve sobre a API do mecanismo que reutiliza o mesmo catálogo de ações, RBAC e trilha de auditoria. Conecte o Claude Code, Cursor, ChatGPT, Claude Desktop ou qualquer cliente compatível com MCP uma única vez, e cada capacidade que adicionarmos à API ficará disponível automaticamente para ele.

O agente recebe três coisas: Tools (os mesmos endpoints de API, sem lógica paralela para divergir), Resources (integridade do site somente leitura, configurações, logs recentes, métricas, tempo de atividade e artigos da base de conhecimento, para diagnosticar com dados reais antes de agir) e Prompts (modelos de fluxo de trabalho publicados, como "diagnose this site" ou "prepare a migration").

A segurança segue a mesma lógica da autenticação: OAuth 2.1, tokens vinculados à sua organização e permissões RBAC com segurança em nível de linha aplicada, com escopo definido e revogáveis por ferramenta, além de sandbox separado da produção. Ações destrutivas — excluir, suspender, faturamento, grandes gastos — exigem confirmação explícita ou uma política de aprovação humana. Limites de taxa e limites de gastos restringem ações pagas acionadas por IA, e cada chamada MCP é registrada em log de auditoria com identidade, ferramenta, argumentos e resultado.

Oferecemos suporte ao protocolo em vez de integrar cada aplicativo individualmente, o que significa que sua escolha de ferramentas de IA pode mudar sem que sua integração de hospedagem mude junto.

Perguntas frequentes

A API pública é a mesma que o painel usa?

Sim — é a mesma API do mecanismo, publicada e reforçada. O painel, o console de administração, a CLI, o provedor Terraform, o servidor MCP e os webhooks são todos consumidores de uma única interface, e é por isso que a API não fica atrás do painel.

Posso testar uma integração sem gastar dinheiro ou construir servidores reais?

Sim. As chaves de sandbox são emitidas separadamente das chaves de produção e operam em modo de teste: sem faturamento real e sem provisionamento real. Aponte seu CI para as credenciais de sandbox e execute o ciclo completo de solicitação e resposta com segurança.

Como posso evitar que uma nova tentativa crie dois itens iguais?

Envie uma Idempotency-Key em seu POST. O registro de repetição é gravado no commit em vez de em linha, portanto uma nova tentativa nunca poderá repetir um sucesso em cache para uma linha que não foi de fato confirmada, e uma solicitação com falha libera seu bloqueio imediatamente para que sua nova tentativa corrigida não seja retida. A entrega de webhooks é, por projeto, do tipo at-least-once — faça a deduplicação pelo envelope id do seu lado.

Posso conceder a uma chave de API acesso a todas as organizações dos meus clientes?

Não hoje. As chaves de API são emitidas por organização, portanto, uma integração que abrange várias organizações clientes possui uma chave para cada uma. As permissões também são verificadas por organização para entidades de usuário: possuir sites.create em uma organização não concede acesso em uma organização separada e não relacionada, embora se aplique às organizações aninhadas abaixo dela. Isso é deliberado — restringe uma chave comprometida à sua própria organização e às suborganizações abaixo dela, e não a toda a plataforma.

O que a função integrada de Desenvolvedor realmente permite?

A função dev abrange a leitura da organização, o gerenciamento de chaves de API, a visualização e a criação de sites, sua reinicialização, a limpeza de seu cache e a visualização e resposta a tíquetes. Ela exclui deliberadamente o controle de faturamento. Observe que as permissões de deploy e push-to-live não fazem parte dela — se um membro da equipe precisar delas, atribua uma função que as contenha em vez de assumir que Developer é a função técnica mais ampla.

O que acontece com meus webhooks se meu endpoint ficar fora do ar por uma hora?

As entregas são repetidas com recuo progressivo (backoff) e cada tentativa é registrada como um WebhookDelivery que você pode inspecionar. No upstream, os eventos são gravados em uma outbox transacional na mesma transação de banco de dados que a própria alteração; portanto, nada é perdido enquanto um consumidor estiver indisponível — um consumidor fora do ar apenas sofre atrasos, ele nunca interrompe o produtor, e você pode reproduzir as entregas pelo painel assim que retornar.

Quanto custa começar a desenvolver com ele?

Comece com um teste de 14 dias sem cartão da Hospedagem Footprint-Free — sem dados de pagamento, até 5 sites. Os planos pagos Footprint-Free começam em US$ 6/mês para PBN 5. Todos os planos contam com garantia de reembolso de 30 dias, migrações gratuitas e sem fidelização com o provedor.

Leia a especificação e, em seguida, desenvolva com base nela

API spec-first, SDKs gerados, uma CLI, um provedor Terraform, webhooks assinados e um servidor MCP — na hospedagem que construímos para mais de 700.000 sites em todo o mundo. Comece com um teste de 14 dias sem cartão, sem necessidade de dados de pagamento.

Comece grátis

Plugins do WordPress com os quais o seu agente de IA pode trabalhar

Cada um desses plugins transforma seu site WordPress em um servidor MCP, para que o Claude, Cursor, VS Code e outros assistentes de IA possam realizar trabalhos reais nele, com a sua sessão iniciada e limitados ao que você tem permissão para fazer.

Toda a documentação de MCP e API para desenvolvedores →