Qué se puede hacer y con qué reglas
A través de la API creas, modificas y publicas lo mismo que harías en las herramientas. Se aplican las mismas reglas: los límites de tu plan, tu barra de IA, una marca completa antes de publicar, números de factura sin huecos y la revisión de cada imagen subida. Lo que no se puede hacer en la herramienta tampoco se puede hacer aquí.
Si algo se rechaza, type contiene un código fijo en inglés con el que tu programa puede decidir, por ejemplo plan_limit_reached, brand_incomplete o ai_quota_exhausted, y detail contiene la frase que también te mostraría la herramienta.
{
"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: …"
}
}Los permisos
Cada área tiene un permiso de lectura y otro de escritura: sites:read y sites:write para sitios web, domains:read y dns:write para dominios y registros DNS, invoices:read y invoices:write para clientes, facturas y presupuestos, media:read y media:write para MediaStudio, brand:read para tus marcas. Elígelos al crear la clave en «¿Qué puede hacer esta clave?».
Sitios web
POST /v1/sites crea un sitio web completo a partir de una frase, como borrador. Suele tardar entre 20 y 60 segundos y consume saldo de IA, como en WebSiteBuilder. POST /v1/sites/{id}/edit modifica una página del borrador según tus instrucciones. Nada se publica hasta POST /v1/sites/{id}/publish; POST /v1/sites/{id}/unpublish vuelve a retirar el sitio web de internet sin perder nada.
brand_id indica la marca cuyo logotipo y datos de empresa muestra el sitio web. Si solo tienes una marca, todos los sitios web la siguen automáticamente: brand_id contiene su número y brand_assigned es false. Con varias marcas, un sitio web muestra el logotipo y los datos de empresa solo de la marca a la que lo hayas asignado; sin asignación, brand_id es 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."}'Envía un Idempotency-Key con los endpoints de IA. Si se corta la conexión, repite la solicitud con la misma clave y recibirás el sitio web ya creado, sin pagar dos veces.
Registros DNS
GET /v1/domains enumera tus dominios cuyo DNS está en KENJTEC. Dentro de ellos creas registros (A, AAAA, CNAME, MX, TXT, NS), los sustituyes con PATCH y los eliminas, con las mismas comprobaciones que en DomainStudio.
Los registros que KENJTEC ha configurado para uno de tus proyectos llevan managed: true. La API no los modifica; eso se hace en DomainStudio, donde se muestran las consecuencias.
Facturas y presupuestos
POST /v1/customers crea un cliente; POST /v1/invoices, un borrador: una factura o un presupuesto. KENJTEC calcula los totales; tú envías la cantidad, el precio unitario en céntimos y el tipo impositivo de cada línea.
POST /v1/invoices/{id}/issue lo emite: el documento recibe el siguiente número sin huecos y a partir de entonces queda fijo. Corregir significa anular: POST /v1/invoices/{id}/cancel crea una factura de anulación con su propio número. No se elimina nada.
Subir medios
La subida se hace en dos pasos, como en MediaStudio. POST /v1/media/uploads te da una dirección y las cabeceras; envía el archivo allí con PUT. Después, POST /v1/media/{id}/confirm comprueba lo que ha llegado, y solo entonces el archivo está accesible en su dirección.
Se admiten JPEG, PNG, WebP, GIF, PDF, MP4 y WebM. Una imagen que no supera la revisión de contenido se rechaza con 422.
Leer tu marca
GET /v1/brands devuelve tus marcas de BrandStudio: nombre, logotipo, colores, tipografías, datos de empresa y canales. Así, tus propios programas pueden crear con la misma imagen que tus proyectos de KENJTEC.