PUBLICA Y GESTIONA SITIOS WEB DESDE TU PROPIO CÓDIGO

Publica un sitio web con una sola llamada HTTP

Crea sitios web a partir de un ZIP, escribe y lee archivos sueltos, consulta los envíos de formularios y cambia de espacio de trabajo, todo con una sola clave de API. Cada endpoint está documentado y hay una colección de Postman lista para importar.

Consigue tu clave de API Lee la documentación de la API

REQUEST

curl -X POST https://api.static.app/v1/sites/zip \
    -H "Authorization: Bearer sk_xxxx" \
    -F "[email protected]"

RESPONSE

{
    "status": "success",
    "pid": "xxxxxxxxxx",
    "slug": "example-site",
    "url": "https://example-site.staticdomains.app"
}

Omite domain para obtener un subdominio aleatorio de staticdomains.app, o pasa pid para actualizar un sitio web existente en lugar de crear otro. Referencia completa.

  • Publica desde un ZIP o una URL

    Sube un archivo comprimido a POST /v1/sites/zip, o pásale a POST /v1/sites el enlace a uno y Static.app lo descarga por ti. Ambos devuelven el pid y la URL pública, y ambos actualizan un sitio web existente si indicas su pid.

  • Cambia un archivo, no todo el sitio web

    Lee un archivo, vuelve a escribirlo, súbelo o elimínalo por su ruta. write-files recibe JSON plano, crea los directorios que falten y devuelve un MD5 por archivo, de modo que un script sin sistema de archivos propio puede publicar una página y comprobar lo que ha llegado.

  • Envíos de formularios que de verdad puedes usar

    Lista los formularios de un sitio web, recorre los envíos con el valor de cada campo, marca spam en bloque y cambia la dirección a la que llegan las notificaciones. Los envíos pueden ir a tu CRM en lugar de a una bandeja de entrada.

Veintiocho endpoints en total, que cubren sitios web, archivos, formularios y espacios de trabajo, cada uno documentado con una solicitud que funciona y una respuesta real en la documentación de la API.

De cero a tu primera llamada en 3 pasos

  • 1

    Crea tu cuenta de Static.app.

  • 2

    Genera una clave de API en tu cuenta. Elige cuánto dura: un día, una semana, un mes, un año o sin caducidad.

  • 3

    Haz la llamada. GET /v1/sites con tu clave en la cabecera Authorization devuelve todos los sitios web de tu espacio de trabajo.

¿Por qué usar una API para gestionar sitios web estáticos?

Navegar por un panel está bien para un solo sitio web. Deja de estarlo cuando entregas trabajos a clientes cada semana, ejecutas una compilación que publica con cada commit o alojas sitios web en nombre de tus propios usuarios. Repetir los mismos pasos a mano cuesta tiempo y cuela errores sin que te des cuenta.

La API cubre el trabajo que repites: crear un sitio web, reemplazar sus archivos, leer un archivo concreto, consultar envíos de formularios y cambiar de espacio de trabajo. Cada solicitud se ejecuta en un único espacio de trabajo, y una cabecera X-Team-Pid dirige una solicitud a otro, así que una sola integración puede atender todas las cuentas de clientes en las que trabajas.

Pensada para tres tipos de trabajo

Agencias que entregan sitios web a clientes

Entrega la primera versión como un archivo comprimido y gestiona cada cambio posterior archivo a archivo. Corregir un texto es una sola solicitud, no una nueva publicación. Cada archivo escrito devuelve un MD5 que coincide con el de un listado de archivos, así sabes exactamente qué ha cambiado.

  • REQUEST

    curl -X POST \
        https://api.static.app/v1/sites/write-files/xxxxxxxxxx \
        -H "Authorization: Bearer sk_xxxx" \
        -H "Content-Type: application/json" \
        -d '{
            "files": [
                { "path": "index.html",
                  "content": "<h1>Hello</h1>" }
            ]
        }'
  • RESPONSE

    {
        "status": "success",
        "written": 1,
        "files": [
            {
                "name": "index.html",
                "path": "index.html",
                "size": 21,
                "hash": "0123456789abcdef0123456789abcdef"
            }
        ],
        "errors": []
    }

Hasta 200 archivos por solicitud, en texto o base64, y los directorios que falten se crean solos. Con create_only , un archivo existente se deja intacto. Consulta Escribir archivos.

Pipelines de CI y CD

Añade un paso al final de tu compilación. Comprime el resultado, envíalo con el pid del sitio web y el mismo sitio web se actualiza directamente, de modo que la dirección que ya tiene tu cliente sigue funcionando. No hay nada que instalar: es una llamada curl y un secreto.

  • PASO DE PUBLICACIÓN

    # after your build step, in CI
    zip -r site.zip dist
    
    curl -X POST https://api.static.app/v1/sites/zip \
        -H "Authorization: Bearer $STATIC_API_KEY" \
        -F "[email protected]" \
        -F "pid=$STATIC_SITE_PID"
  • RESPONSE

    {
        "status": "success",
        "pid": "xxxxxxxxxx",
        "slug": "example-site",
        "url": "https://example-site.staticdomains.app"
    }

Crear y actualizar comparten un único endpoint, así que un script de publicación nunca necesita dos caminos de código. Termina con POST /v1/sites/{pid}/purge-cache y los visitantes ven la versión nueva de inmediato.

Plataformas que alojan sitios web para sus propios usuarios

Lista los espacios de trabajo a los que llega tu clave y envía X-Team-Pid en cada solicitud para actuar dentro de uno de ellos. La cabecera solo se aplica a la solicitud en la que va, así que un worker que atiende a diez clientes seguidos solo cambia una cabecera, y tu espacio de trabajo predeterminado sigue donde estaba.

  • REQUEST

    curl https://api.static.app/v1/sites \
        -H "Authorization: Bearer sk_xxxx" \
        -H "X-Team-Pid: yyyyyyyyyy"
  • RESPONSE

    [
        {
            "pid": "xxxxxxxxxx",
            "slug": "example-site",
            "title": "Client Website",
            "full_url": "https://example-site.staticdomains.app"
        }
    ]

Antes de publicar, GET /v1/users/profile devuelve tu plan, el número de sitios web permitidos y lo que estás usando, para que un script pueda detenerse limpiamente en lugar de fallar al llegar al límite.

No solo endpoints

  • Una clave, todos los espacios de trabajo

    Lista los espacios de trabajo a los que llega tu cuenta, comprueba cuál está activo y apunta a otro en una sola solicitud con una cabecera. Una integración cubre todos los espacios de trabajo de clientes a los que perteneces, sin un segundo inicio de sesión.

  • Comprueba tu margen antes de publicar

    GET /v1/users/profile devuelve tu plan y su estado, el número de sitios web y el almacenamiento permitidos, y tu uso actual. La automatización puede decidir si publica en lugar de descubrir el límite por las malas.

  • La misma cuenta, desde un agente de IA

    El conector MCP de Static.app envuelve esta API para agentes de IA como Claude Code y Codex, y se conecta con la misma clave. Consulta el conector MCP y su documentación.

Preguntas frecuentes

¿Necesito un plan de pago para usar la API?

No. Puedes crear una clave de API desde cualquier cuenta de Static.app y empezar a llamar a la API de inmediato. Los límites del plan se aplican a lo que creas, no a la API en sí: añadir un sitio web nuevo falla cuando alcanzas el número de sitios web de tu plan, mientras que actualizar los que ya tienes no se ve afectado. Compara los límites en la página de precios.

¿Cómo funciona la autenticación?

Envía tu clave como token bearer en cada solicitud: Authorization: Bearer sk_xxxx. Las claves se crean en tu cuenta y eliges cuánto dura cada una: un día, una semana, un mes, un año o sin caducidad. Eliminar o regenerar una clave surte efecto en la siguiente solicitud.

¿Cómo actualizo un sitio web en lugar de crear uno nuevo?

Pasa el pid del sitio web a POST /v1/sites/zip o POST /v1/sites y el archivo comprimido reemplaza el contenido de ese sitio web en lugar de crear otro. El pid y la dirección de staticdomains.app del sitio web no cambian, y por eso es seguro ejecutar la llamada desde un pipeline en cada commit.

¿Una sola clave de API puede gestionar varios espacios de trabajo de clientes?

Sí. GET /v1/workspaces lista todos los espacios de trabajo a los que llega tu cuenta, y al añadir X-Team-Pid con el pid de un espacio de trabajo, solo esa solicitud se ejecuta en otro espacio sin cambiar el tuyo predeterminado. Una integración puede cubrir todas las cuentas de clientes en las que trabajas.

¿Hay un sandbox o un modo de pruebas?

No. Todas las llamadas funcionan con datos reales. Lo práctico es crear un sitio web desechable con la API, apuntar tu integración a ese pid mientras desarrollas y luego eliminarlo con DELETE /v1/sites/{pid}. Si le das a una clave de prueba una caducidad corta, caduca sola.

¿Qué tamaño puede tener una publicación?

Sube un ZIP a POST /v1/sites/zip, o pásale a POST /v1/sites el enlace a uno y Static.app lo descarga en el servidor, así que un ZIP grande nunca viaja dentro de tu propia solicitud. Una llamada write-files admite hasta 200 archivos y read-file tiene un tope de 1 MB; para algo más grande están los endpoints de descarga. El almacenamiento total depende de tu plan.

¿Puedo recuperar un sitio web completo?

Sí. GET /v1/sites/download/{pid} genera un ZIP de todo el sitio web y devuelve una URL al archivo comprimido, y POST /v1/sites/download-files/{pid} hace lo mismo con la lista de rutas que elijas. Una copia de seguridad nocturna es un cron job y una solicitud.