Esta página documenta
@squarecloud/api v6, una reescritura del SDK. ¿Vienes de la v5? Lee la guía de migración v5 → v6.Requisitos
- Node.js 22 o más reciente, Deno, Bun o un entorno edge. El SDK solo necesita
fetch,FormData,Bloby web streams. - Una clave de API (consulta Clave de API y scopes).
@squarecloud/api-types.
Instalación
- npm
- pnpm
- yarn
- bun
- deno
Clave de API y scopes
Crea una clave en squarecloud.app/account/security. El SDK la envía tal cual en el encabezadoAuthorization (sin el prefijo Bearer).
Una clave puede limitarse a scopes (apps:read, apps:deploy, apps:control, ai:chat, …) y a aplicaciones o bases de datos concretas:
- Una llamada fuera de esos límites lanza un
SquareCloudAPIErrorcon 403MISSING_SCOPEoRESOURCE_NOT_ALLOWED. - Los métodos de listado (
account.me(),apps.statusAll(), …) solo devuelven los recursos que la clave puede ver. - Una clave desconocida, revocada o caducada da 401
ACCESS_DENIED.
SQUARECLOUD_API_KEY. Defínela en la terminal donde los ejecutes:
- macOS / Linux
- Windows (PowerShell)
Crear el cliente
- TypeScript / ESM
- CommonJS
TypeError en el constructor, antes de cualquier petición.
Opciones
Módulos
Los únicos exports en tiempo de ejecución son
SquareCloudAPI, SquareCloudAPIError y BASE_URL. Todos los demás exports (App, RuntimeStats, ErrorCode, …) son tipos:
Convenciones
Primero el id, de vuelta datos planos
Todos los métodos reciben el id del recurso como primer argumento y devuelven datos planos (sin clases ni caché). Los nombres de los campos son los de la propia API (created_at, version_id, lastModified, joinedAt, netIO, …), así que la referencia de la API se aplica tal cual.
- Las mutaciones se resuelven en
void, salvo que la API devuelva datos (envs.*,deploys.setWebhook,deploys.linkGithubApp,databases.resetCredentialsy los métodoscreate). - Un resultado de tipo string nunca es
undefined: es""cuando la API no envía nada. - Las listas llegan completas en una sola llamada: no hay paginación.
Aplicaciones de workspace
TodoappId acepta también la forma compuesta <appId>-<workspaceId> para actuar sobre una aplicación compartida contigo a través de un workspace. workspaces.get() y workspaces.list() devuelven ids sin procesar; el id compuesto lo construyes tú:
Los ids se codifican
Los ids en la ruta de la URL se codifican con percent-encoding. Un id vacío,. o .. llegaría a otra ruta, así que falla localmente con INVALID_ID (estado 0) antes de enviar nada. Las rutas de workspace envían sus ids en el cuerpo: ahí, el INVALID_ID (400) viene del servidor.
Fechas
Los argumentosstart y end (consulta Red) aceptan un string ISO 8601 o un Date. Las fechas de las respuestas se mantienen tal como las envía la API (strings ISO, o milisegundos Unix donde la API los usa).
Timeouts
Un
timeoutMs de 0 o menos, Infinity o >= 2^31 desactiva todos los timeouts, incluidos los mínimos de 120 s.
Solo cinco métodos aceptan un AbortSignal: apps.create, apps.commit, files.write, apps.realtime y downloadSnapshot.
reason del signal, no con un SquareCloudAPIError. Un bucle de realtime() abortado simplemente termina.
Cuenta
api.account.me() devuelve el usuario autenticado junto con las aplicaciones y bases de datos que la clave puede ver.
api.account.snapshots({ scope }) lista todos los snapshots de la cuenta: consulta Snapshots.
Estado de la plataforma
api.service.status() devuelve el estado público de la plataforma. La ruta no necesita una clave válida, pero el cliente sigue exigiendo una que no esté vacía.
unknown significa que la propia comprobación no pudo ejecutarse: no es una prueba de una caída.
Próximos pasos
Gestión de aplicaciones
Estado, ciclo de vida, logs y métricas.
Errores
Clase de error, reintentos y límites de tasa.
Introducción a la API
URL base, autenticación y una primera solicitud.
Inicio rápido de la CLI
Haz deploy y gestiona aplicaciones desde la terminal.

