O que é possível — e segundo que regras
Através da API, crias, alteras e publicas o que normalmente fazes nas ferramentas. Aplicam-se as mesmas regras: os limites do teu plano, a tua barra de IA, uma marca completa antes de publicar, números de fatura sem lacunas e a verificação de cada imagem carregada. O que não é possível na ferramenta também não é possível aqui.
Se algo for recusado, type contém um código fixo em inglês com base no qual o teu programa decide — por exemplo plan_limit_reached, brand_incomplete ou ai_quota_exhausted —, e detail contém a frase que a ferramenta também te mostraria.
{
"error": {
"type": "brand_incomplete",
"message": "The brand needs a name, an address and an email or phone number before anything is published.",
"detail": "Bevor diese Website online geht, muss klar sein, wer dahintersteht. Es fehlt: …"
}
}As permissões
Cada área tem uma permissão de leitura e uma de escrita: sites:read e sites:write para websites, domains:read e dns:write para domínios e registos DNS, invoices:read e invoices:write para clientes, faturas e orçamentos, media:read e media:write para o MediaStudio, brand:read para as tuas marcas. Escolhe-as ao criar a chave em “O que pode esta chave fazer?”.
Sites
POST /v1/sites cria um website completo a partir de uma frase — como rascunho. Normalmente demora entre 20 e 60 segundos e consome saldo de IA, tal como no WebSiteBuilder. POST /v1/sites/{id}/edit altera uma página do rascunho de acordo com a tua instrução. Nada fica online antes de POST /v1/sites/{id}/publish; POST /v1/sites/{id}/unpublish retira o website da internet sem perder nada.
brand_id indica a marca cujo logótipo e dados da empresa o website mostra. Se tiveres apenas uma marca, todos os websites seguem-na automaticamente — nesse caso, brand_id contém o número dela e brand_assigned é false. Com várias marcas, um website mostra o logótipo e os dados da empresa apenas da marca à qual o atribuíste; sem atribuição, brand_id é null.
curl https://api.kenjtec.com/v1/sites \
-H "Authorization: Bearer kt_api_…" \
-H "Idempotency-Key: cafe-lumen-2026-10" \
-H "Content-Type: application/json" \
-d '{"brief": "Café Lumen in Lissabon: Frühstück, eigene Kaffeebohnen, Tische zum Reservieren."}'Nas rotas de IA, envia um Idempotency-Key. Se a ligação cair, repetes com o mesmo identificador e recebes o website já criado — sem pagar uma segunda vez.
Registos DNS
GET /v1/domains lista os teus domínios cujo DNS está na KENJTEC. Dentro deles, crias registos (A, AAAA, CNAME, MX, TXT, NS), substitui-los com PATCH e elimina-los — com as mesmas verificações que no DomainStudio.
Os registos que a KENJTEC definiu para uma das tuas obras têm managed: true. A API não os altera; isso faz-se no DomainStudio, onde as consequências são indicadas.
Faturas e orçamentos
POST /v1/customers cria um cliente, POST /v1/invoices um rascunho — uma fatura ou um orçamento. Os totais são calculados pela KENJTEC; tu envias a quantidade, o preço unitário em cêntimos e a taxa de imposto por linha.
POST /v1/invoices/{id}/issue emite o documento: recebe o número seguinte sem lacunas e fica fixo a partir daí. Corrigir significa anular — POST /v1/invoices/{id}/cancel cria uma fatura de anulação com número próprio. Nada é eliminado.
Carregar multimédia
O carregamento faz-se em dois passos, tal como no MediaStudio. POST /v1/media/uploads indica-te um endereço e os cabeçalhos; envias o ficheiro para lá com PUT. Depois, POST /v1/media/{id}/confirm verifica o que chegou, e só então o ficheiro fica acessível no seu endereço.
São permitidos JPEG, PNG, WebP, GIF, PDF, MP4 e WebM. Uma imagem que não passe na verificação de conteúdo é recusada com 422.
Ler a tua marca
GET /v1/brands devolve as tuas marcas do BrandStudio: nome, logótipo, cores, tipos de letra, dados da empresa e canais. Assim, os teus próprios programas constroem com a mesma imagem que as tuas obras da KENJTEC.