Para desarrolladores

Alojamiento que puede gestionar mediante código

Zinn Digital® es una plataforma basada en API-first. La misma API de motor que impulsa nuestro panel de control es la que usted obtiene: versionada, orientada a especificaciones y 100 % documentada en el momento de la compilación, con SDK generados, una CLI, un proveedor de Terraform, webhooks firmados y un servidor MCP integrado. Sea lo que sea que utilice para trabajar —un terminal, una canalización, un archivo de estado o un agente de IA—, la plataforma le responde.

Un extremo de API que entrega eventos firmados a varios agentes de escucha suscritos.
  • 700.000+sitios alojados en todo el mundo
  • 1Especificación OpenAPI a partir de la cual se genera cada herramienta
  • 4SDK de cliente: TypeScript, Python, PHP, Go
  • OAuth 2.1acceso delimitado y revocable de agentes de IA

Una sola API. Cada superficie se apoya en ella.

La mayoría de los proveedores de alojamiento incorporan una API al panel de control a posteriori, y salta a la vista: la mitad de las funciones del panel nunca llegan a ella. Nosotros lo creamos a la inversa. El panel de control, la consola de administración, la CLI, el proveedor de Terraform, el servidor MCP y sus propias integraciones consumen la misma API del motor. Si puede hacerlo en el panel, puede hacerlo mediante código.

Primero la especificación, no documentado a posteriori

La especificación OpenAPI es la única fuente de verdad y no se publica ningún punto de conexión a menos que esté incluido en ella. Esta única regla es lo que permite que la API pública esté completamente documentada durante el proceso de compilación y no a posteriori: no existen zonas sin documentar, porque un punto de conexión no documentado simplemente no puede existir.

Generado, nunca mantenido manualmente

La documentación de referencia interactiva, los cuatro SDK de cliente, gran parte de la CLI y la estructura básica del proveedor de Terraform se generan a partir de esa única especificación. Una sola fuente, muchos artefactos, siempre sincronizados: nunca tendrá que perseguir documentación desfasada respecto a la implementación.

Con versiones y una política de obsolescencia

Los puntos de conexión se encuentran bajo /v1 con una política de obsolescencia publicada y un registro de cambios. Se le informará por escrito antes de que algo cambie, en lugar de descubrirlo a través de una compilación fallida.

Probado por contrato en CI

Las pruebas de contrato entre implementación y especificación, así como el análisis de código OpenAPI, se ejecutan con cada cambio. Cualquier discrepancia entre el código y el contrato hace fallar la compilación, por lo que la especificación a partir de la cual genera su cliente es la que el servidor realmente respeta.

Autenticación, definición del alcance y las complicaciones al escalar

Dos vías de acceso, un principio uniforme detrás de ellas. Cualquiera que utilice, se aplican las mismas comprobaciones de permisos y el mismo aislamiento a nivel de base de datos.

Claves de API, por organización

Las claves tienen el formato zdk_<mode>_<prefix>_<secret>. Solo se almacena un hash SHA-256 del secreto; no podemos volver a mostrarle una clave después de su emisión, ni tampoco puede hacerlo nadie que acceda a nuestra base de datos. Las claves tienen alcances, se pueden revocar y se emiten por organización en lugar de por persona.

Modos en vivo y de prueba, separados entre sí

Las claves de sandbox son independientes de las claves de producción y se ejecutan en modo sandbox: sin facturación real ni aprovisionamiento real. Sus pruebas de integración pueden someter a una carga intensa a la API sin gastar dinero ni crear servidores.

OIDC para humanos

Las sesiones de usuario se autentican con tokens JWT emitidos por Keycloak, se verifican con la clave pública del dominio (realm) y se resuelven en el mismo objeto Principal que una clave de API. Los extremos (endpoints) están protegidos por claves de permisos granulares como sites.create o apikeys.manage, comprobadas por organización: un permiso en una organización no otorga acceso en otra organización independiente y no relacionada, aunque sí se aplica a las organizaciones anidadas bajo ella.

Seguridad a nivel de fila debajo

Cada solicitud de inquilino se ejecuta en una transacción con el ámbito de organización de Postgres establecido a partir del principal, por lo que el aislamiento lo aplica la base de datos, no un filtro ORM que alguien podría olvidar. El filtro de queryset sigue presente como defensa en profundidad.

Creado para máquinas, no solo para demostraciones

Es fácil hacer que una API se vea bien en un archivo README y difícil lograr que responda adecuadamente bajo tráfico real. Estas son las partes en las que más nos hemos esforzado, porque son las que rompen las integraciones a las tres de la mañana.

Un detalle que vale la pena señalar, ya que determina el comportamiento del trabajo masivo: un error 409 por dominio duplicado responde a la pregunta «¿está alojado aquí este nombre de host?» para cualquier inquilino, lo que constituye un oráculo de enumeración y un riesgo real de desanonimización para Footprint-Free. Limitar la tasa de creación de sitios habría sido la solución perezosa y habría arruinado por completo el producto de aprovisionamiento masivo. En su lugar, solo se presupuestan los intentos rechazados de dominios duplicados, por entidad principal. Las creaciones exitosas nunca se descuentan de este límite, por lo que usted puede aprovisionar en masa durante todo el día, mientras que los sondeos se detienen casi de inmediato.

  • Un contenedor de errores coherente en cada fallo: un código, un mensaje legible, detalles opcionales a nivel de campo y un request_id que puede indicar al equipo de asistencia. Los errores de validación devuelven 422 con los nombres de los campos infractores.
  • Claves de idempotencia en POST, con el registro de reproducción escrito al confirmar en lugar de en línea, de modo que un reintento nunca pueda reproducir un 201 en caché que mencione una fila que nunca se confirmó. Una solicitud fallida libera su bloqueo en curso de inmediato, por lo que un 422 no bloquea su reintento corregido.
  • Paginación por cursor como keyset sobre UUIDv7: estable ante escrituras simultáneas, sin desplazamiento de página cuando se insertan filas en medio del escaneo.
  • RateLimit-Remaining en las respuestas, para que un cliente generado pueda retroceder de manera inteligente en lugar de adivinar.
  • Los recursos fuera de alcance devuelven 404 en lugar de 403; un 403 confirmaría que el recurso existe. Filtrar por una organización fuera de su alcance devuelve una página vacía por el mismo motivo.
  • La creación del sitio es un registro, no un aprovisionamiento: POST /v1/sites devuelve 201 con el estado pending y nunca bloquea la compilación. El evento se escribe en la transactional outbox en la misma transacción que la fila, por lo que un sitio existe si y solo si se garantiza que se solicitará su aprovisionamiento.

SDKs, una CLI y un proveedor de Terraform

Tres consumidores de la misma especificación, para tres formas diferentes de trabajar.

SDK de cliente

Generado para TypeScript, Python, PHP y Go, siguiendo la especificación para que un nuevo punto de conexión llegue a su lenguaje sin tener que esperar un contenedor escrito a mano.

Zinnector®, la CLI

Cree la estructura de un sitio de WordPress, ejecútelo localmente sin nada más instalado que Node y despliéguelo. Zinnector® comprueba previamente su proyecto con respecto a la ranura en la que va a realizar el despliegue —versión de PHP, disco, recuento de archivos— y le avisa antes de enviar los cambios, no después. También inicia sesión, enumera sitios, despliega, gestiona dominios y DNS, lee servicios de correo, realiza copias de seguridad, ejecuta comandos de WP-CLI incluidos en la lista de permitidos, sigue registros en tiempo real y ejecuta operaciones masivas. Gratuito, con licencia MIT y creado sobre esta misma API pública.

El proveedor de Terraform

Gestione sitios, dominios, registros DNS, buzones de correo y planes como infraestructura como código. terraform apply aprovisiona el alojamiento y sus entornos pasan a ser reproducibles y revisables en lugar de una secuencia de clics que nadie registró.

Referencia interactiva

Documentación generada que puede leer y llamar desde el navegador, que describe con exactitud los puntos de conexión que implementa el servidor, ya que ambos proceden de la misma especificación.

Webhooks que sobreviven a la caída de su punto de conexión

Detrás de la plataforma hay una columna vertebral de eventos duradera: cada cambio de estado escribe un evento en una bandeja de salida transaccional en Postgres, de forma atómica con el cambio de la base de datos, y un repetidor lo publica en NATS JetStream. Los eventos están tipificados y versionados: site.deployed, order.paid, invoice.overdue, backup.completed, abuse.flagged, trial.ending y los demás.

Suscríbase a lo que le interesa

Registre un punto de conexión como WebhookSubscription y elija los tipos de eventos que recibirá. Un único flujo alimenta notificaciones, análisis, automatizaciones y su integración por igual: usted consume los mismos eventos que nosotros.

Firmado con HMAC

Cada entrega está firmada con HMAC para que pueda verificar que proviene de nosotros antes de realizar cualquier acción.

Reintentado con retroceso y registrado

Las entregas fallidas se reintentan con un intervalo exponencial y cada intento se registra como WebhookDelivery. Puede inspeccionar y reintentar las entregas desde el panel de control en lugar de enviar un correo al equipo de asistencia preguntando qué enviamos.

Al menos una vez, por lo que elimine duplicados según el id

La canalización funciona deliberadamente según el principio de «al menos una vez» en lugar de pretender ser «exactamente una vez». Cuando un repetidor falla a mitad de la publicación, su concesión de reclamación expira y sus eventos se vuelven a publicar. Deduplique a partir del ID del sobre y su consumidor será correcto por diseño.

Subir código al sitio

Una API es solo la mitad de la historia de un desarrollador. La otra mitad es el lanzamiento.

  • Conecte GitHub, GitLab o Bitbucket a través de OAuth, con las claves de implementación almacenadas en el almacén de credenciales, no en un archivo de configuración.
  • Push activa una canalización de compilación y despliegue, con asignación de rama a entorno (main a production, staging a staging) y pasos de compilación por pila para composer y npm.
  • Vuelva a una versión anterior cuando falle una implementación.
  • Clonación de prueba e implementación en producción, para que los cambios se prueben en un entorno real antes de que lleguen a los visitantes.
  • SFTP por sitio bajo el aislamiento de CageFS, de modo que cada inquilino ve solo sus propios archivos, además de una shell de SSH restringida (jailed) en la plataforma compartida.
  • wp-cli desde la terminal del panel y mediante SSH.
  • VS Code en el navegador mediante code-server: un editor completo con git que edita directamente los archivos del sitio.
  • Versión de PHP por sitio, configuración de PHP editable, extensiones por sitio, variables de entorno y cron real junto con WP-cron.

Cuatro formas de trabajar en un sitio

La API es una puerta. Estas son las otras cuatro, y cada una de ellas está incluida en el plan en lugar de venderse como un nivel para desarrolladores.

El editor web

VS Code en el navegador, abierto desde la página del sitio en el panel de control, editando los archivos reales de ese sitio con git integrado y todo el editor dentro del mismo entorno aislado CageFS que su acceso SFTP. Edita el sitio EN VIVO; no hay una copia de pruebas intermedia, por lo que el archivo que guarde será público en el momento en que se escriba, aunque un archivo estático puede continuar sirviéndose desde la caché de la CDN hasta por cuatro horas.

Zinnector®, la CLI

Gratuito, con licencia MIT y creado sobre esta misma API pública. Cree la estructura de un sitio de WordPress, ejecútelo en su propia máquina, verifíquelo previamente con respecto al espacio en el que va a realizar la implementación —versión de PHP, disco, cantidad de archivos— e impleméntelo. Requiere Node 24 o posterior.

El servidor MCP

Un único catálogo de herramientas, para que el cliente de IA que ya utiliza pueda trabajar en sus sitios a través de la misma API y los mismos permisos que utiliza el panel de control. El mismo servidor al que se conecta su propio cliente es el que está conectado al editor web. De solo lectura hasta que usted indique lo contrario.

Acceso de desarrollador por sitio

El trabajo de los clientes no necesita su contraseña. Invite a alguien por dirección de correo electrónico y obtendrá exactamente un sitio: iniciará sesión con su propia cuenta, con el rol de espectador, editor o administrador, y cualquier otro sitio responderá con un error 404 antes de que se ejecute cualquier controlador; se trata de una directiva de seguridad a nivel de fila de Postgres y una barrera a nivel de solicitud, no de una única comprobación. El propietario de la cuenta la concede y la revoca con un solo clic, con efecto a partir de su siguiente solicitud.

Y la misma API que su agente de IA puede utilizar

Exponemos la plataforma como un servidor MCP alojado: un adaptador de protocolo ligero sobre la API del motor que reutiliza el catálogo de acciones idéntico, el RBAC y el registro de auditoría. Conecte Claude Code, Cursor, ChatGPT, Claude Desktop o cualquier cliente compatible con MCP una sola vez, y cada capacidad que agreguemos a la API estará disponible para él automáticamente.

El agente recibe tres cosas: Herramientas (los mismos puntos finales de API, sin lógica paralela que pueda desviarse), Recursos (estado del sitio de solo lectura, configuración, registros recientes, métricas, tiempo de actividad y artículos de la base de conocimientos, para que diagnostique con datos reales antes de actuar) e Instrucciones (plantillas de flujo de trabajo publicadas como «diagnosticar este sitio» o «preparar una migración»).

La seguridad sigue el mismo principio que la autenticación: OAuth 2.1, tokens vinculados a su organización y permisos RBAC con seguridad a nivel de fila aplicada, con alcance delimitado y revocables por herramienta, y un entorno de pruebas separado de producción. Las acciones destructivas — eliminar, suspender, facturación, grandes gastos — requieren confirmación explícita o una política de aprobación humana. Los límites de frecuencia y los topes de gasto restringen las acciones de pago activadas por IA, y cada llamada de MCP se registra en la auditoría con identidad, herramienta, argumentos y resultado.

Admitimos el protocolo en lugar de integrar cada aplicación de forma individual, lo que significa que su elección de herramientas de IA puede cambiar sin que cambie su integración de alojamiento.

Preguntas frecuentes

¿La API pública es la misma que utiliza el panel de control?

Sí: es la misma API del motor, publicada y reforzada. El panel de control, la consola de administración, la CLI, el proveedor de Terraform, el servidor MCP y los webhooks son todos consumidores de una misma superficie, razón por la cual la API no se queda atrás respecto al panel.

¿Puedo probar una integración sin gastar dinero ni crear servidores reales?

Sí. Las claves de Sandbox se emiten por separado de las claves de producción y funcionan en modo de prueba: sin facturación real y sin aprovisionamiento real. Apunte su CI a las credenciales de sandbox y pruebe todo el ciclo de solicitud y respuesta de forma segura.

¿Cómo puedo evitar que un reintento cree un elemento por duplicado?

Envíe un Idempotency-Key en su POST. El registro de repetición se escribe en el commit en lugar de en línea, por lo que un reintento nunca puede repetir un éxito almacenado en caché para una fila que realmente no se confirmó, y una solicitud que falla libera su bloqueo de inmediato para que su reintento corregido no se retrase. La entrega de webhooks es por diseño de al menos una vez (at-least-once); elimine los duplicados según el envelope id en su extremo.

¿Puedo conceder a una sola clave de API acceso a todas las organizaciones de mis clientes?

Hoy no. Las claves de API se emiten por organización, por lo que una integración que abarca varias organizaciones de clientes contiene una clave para cada una. Los permisos también se comprueban por organización para las entidades de usuario: disponer de sites.create en una organización no otorga acceso en una organización independiente y no relacionada, aunque sí se aplica a las organizaciones anidadas debajo de ella. Esto es intencionado: confina una clave comprometida a su propia organización y a las suborganizaciones subordinadas, no a toda la plataforma.

¿Qué permite realmente el rol integrado de Desarrollador?

El rol dev cubre la lectura de la organización, la gestión de claves API, la visualización y creación de sitios, su reinicio, el vaciado de su caché, y la visualización y respuesta a tickets. Excluye deliberadamente el control de facturación. Tenga en cuenta que los permisos de despliegue y push-to-live no forman parte de él; si un miembro del equipo los necesita, asígnele un rol que los incluya en lugar de asumir que Developer es el rol técnico más amplio.

«¿Qué ocurre con mis webhooks si mi punto de conexión se cae durante una hora?»

Las entregas se reintentan con un intervalo exponencial y cada intento se registra como una WebhookDelivery que usted puede inspeccionar. En sentido ascendente, los eventos se escriben en una bandeja de salida transaccional dentro de la misma transacción de base de datos que el propio cambio, por lo que nada se pierde mientras un consumidor no esté disponible; un consumidor fuera de servicio se retrasa, pero nunca interrumpe al productor, y usted puede reproducir las entregas desde el panel de control una vez que esté de vuelta.

¿Cuánto cuesta comenzar a desarrollar con él?

Comienza una prueba de 14 días de Footprint-Free Hosting sin tarjeta — sin datos de pago, hasta 5 sitios. Los planes de pago de Footprint-Free comienzan en $6/mes para PBN 5. Cada plan incluye una garantía de devolución de dinero de 30 días, migraciones gratuitas y sin dependencia del proveedor.

Lea la especificación y, a continuación, desarrolle en función de ella

API orientada a especificaciones, SDK generados, una CLI, un proveedor de Terraform, webhooks firmados y un servidor MCP: en el alojamiento que creamos para más de 700 000 sitios en todo el mundo. Comience con una prueba de 14 días sin tarjeta y sin datos de pago.

Empiece gratis

Plugins de WordPress con los que su agente de IA puede trabajar

Cada uno de estos plugins convierte su sitio de WordPress en un servidor MCP, por lo que Claude, Cursor, VS Code y otros asistentes de inteligencia artificial pueden realizar trabajo real en él, con su sesión iniciada y con las limitaciones de lo que usted tiene permitido hacer.

Toda la documentación de MCP y API para desarrolladores →