Cosa è possibile, e secondo quali regole
Tramite l'API crei, modifichi e pubblichi ciò che altrimenti fai negli strumenti. Valgono le stesse regole: i limiti del tuo piano, la tua barra IA, un marchio completo prima della pubblicazione, numeri di fattura senza interruzioni e il controllo di ogni immagine caricata. Ciò che non è possibile nello strumento non è possibile nemmeno qui.
Se qualcosa viene rifiutato, type contiene un codice fisso in inglese su cui il tuo programma può basare le proprie decisioni, ad esempio plan_limit_reached, brand_incomplete o ai_quota_exhausted, e detail contiene la frase che ti mostrerebbe anche lo strumento.
{
"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: …"
}
}I permessi
Ogni area ha un permesso di lettura e uno di scrittura: sites:read e sites:write per i siti web, domains:read e dns:write per domini e record DNS, invoices:read e invoices:write per clienti, fatture e preventivi, media:read e media:write per MediaStudio, brand:read per i tuoi marchi. Scegli i permessi quando crei la chiave, in “Cosa può fare questa chiave?”.
Siti web
POST /v1/sites crea un intero sito web a partire da una frase, come bozza. Di solito richiede da 20 a 60 secondi e consuma credito IA, come in WebSiteBuilder. POST /v1/sites/{id}/edit modifica una pagina della bozza secondo le tue istruzioni. Nulla va online prima di POST /v1/sites/{id}/publish; POST /v1/sites/{id}/unpublish toglie di nuovo il sito dalla rete senza perdere nulla.
brand_id indica il marchio di cui il sito web mostra logo e dati aziendali. Se hai un solo marchio, ogni sito web lo segue automaticamente: in quel caso lì compare il suo numero e brand_assigned è false. Con più marchi, un sito web mostra logo e dati aziendali solo del marchio a cui l'hai assegnato; senza assegnazione, 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."}'Con gli endpoint IA invia anche un'intestazione Idempotency-Key. Se la connessione si interrompe, ripeti la richiesta con la stessa chiave e ricevi il sito web già creato, senza pagare una seconda volta.
Record DNS
GET /v1/domains elenca i tuoi domini il cui DNS è presso KENJTEC. Al loro interno crei record (A, AAAA, CNAME, MX, TXT, NS), li sostituisci con PATCH e li elimini, con gli stessi controlli di DomainStudio.
I record che KENJTEC ha impostato per uno dei tuoi lavori riportano managed: true. L'API non li modifica; puoi farlo in DomainStudio, dove sono indicate anche le conseguenze.
Fatture e preventivi
POST /v1/customers crea un cliente, POST /v1/invoices una bozza: una fattura o un preventivo. I totali li calcola KENJTEC; tu invii quantità, prezzo unitario in centesimi e aliquota fiscale per ogni riga.
POST /v1/invoices/{id}/issue emette il documento: riceve il numero successivo senza interruzioni e da quel momento è definitivo. Correggere significa stornare: POST /v1/invoices/{id}/cancel crea una fattura di storno con un proprio numero. Non viene eliminato nulla.
Caricare file multimediali
Il caricamento avviene in due passaggi, come in MediaStudio. POST /v1/media/uploads ti fornisce un indirizzo e le intestazioni; lì invii il file con PUT. Poi POST /v1/media/{id}/confirm verifica ciò che è arrivato, e solo allora il file è raggiungibile al suo indirizzo.
Sono consentiti JPEG, PNG, WebP, GIF, PDF, MP4 e WebM. Un'immagine che non supera il controllo dei contenuti viene rifiutata con 422.
Leggere il tuo marchio
GET /v1/brands restituisce i tuoi marchi da BrandStudio: nome, logo, colori, caratteri, dati aziendali e canali. Così i tuoi programmi possono creare con lo stesso stile dei tuoi lavori KENJTEC.