Diese Seite dokumentiert
@squarecloud/api v6, eine Neuentwicklung des SDK. Du kommst von v5? Lies den Migrationsleitfaden v5 → v6.Voraussetzungen
- Node.js 22 oder neuer, Deno, Bun oder eine Edge-Runtime. Das SDK benötigt nur
fetch,FormData,Blobund Web Streams. - Ein API-Schlüssel (siehe API-Schlüssel und Scopes).
@squarecloud/api-types brauchst du nicht mehr.
Installation
- npm
- pnpm
- yarn
- bun
- deno
API-Schlüssel und Scopes
Erstelle einen Schlüssel unter squarecloud.app/account/security. Das SDK sendet ihn unverändert im HeaderAuthorization (ohne das Präfix Bearer).
Ein Schlüssel kann auf Scopes (apps:read, apps:deploy, apps:control, ai:chat, …) und auf bestimmte Apps oder Datenbanken beschränkt werden:
- Ein Aufruf außerhalb dieser Grenzen wirft einen
SquareCloudAPIErrormit 403MISSING_SCOPEoderRESOURCE_NOT_ALLOWED. - Listenmethoden (
account.me(),apps.statusAll(), …) geben nur die Ressourcen zurück, die der Schlüssel sehen kann. - Ein unbekannter, widerrufener oder abgelaufener Schlüssel ergibt 401
ACCESS_DENIED.
SQUARECLOUD_API_KEY. Setze sie in dem Terminal, in dem du sie ausführst:
- macOS / Linux
- Windows (PowerShell)
Client erstellen
- TypeScript / ESM
- CommonJS
TypeError, noch vor jeder Anfrage.
Optionen
Module
Die einzigen Laufzeit-Exporte sind
SquareCloudAPI, SquareCloudAPIError und BASE_URL. Jeder andere Export (App, RuntimeStats, ErrorCode, …) ist ein Typ:
Konventionen
Zuerst die ID, zurück kommen einfache Daten
Jede Methode nimmt die ID der Ressource als erstes Argument und gibt einfache Daten zurück (keine Klassen, kein Cache). Die Feldnamen sind die der API (created_at, version_id, lastModified, joinedAt, netIO, …), daher gilt die API-Referenz unverändert.
- Mutationen werden zu
voidaufgelöst, sofern die API keine Daten zurückgibt (envs.*,deploys.setWebhook,deploys.linkGithubApp,databases.resetCredentialsund diecreate-Methoden). - Ein String-Ergebnis ist nie
undefined: Es ist"", wenn die API keines sendet. - Listen kommen vollständig in einem Aufruf: Es gibt keine Paginierung.
Workspace-Apps
JedeappId akzeptiert auch die zusammengesetzte Form <appId>-<workspaceId>, um auf eine App zuzugreifen, die über einen Workspace mit dir geteilt wird. workspaces.get() und workspaces.list() geben die reinen IDs zurück; die zusammengesetzte ID baust du selbst:
IDs werden kodiert
IDs im URL-Pfad werden prozentkodiert. Eine ID, die leer,. oder .. ist, würde eine andere Route erreichen und schlägt daher lokal mit INVALID_ID (Status 0) fehl, bevor etwas gesendet wird. Workspace-Routen senden ihre IDs stattdessen im Body: Dort kommt INVALID_ID (400) vom Server.
Datumsangaben
Die Argumentestart und end (siehe Netzwerk) akzeptieren einen ISO-8601-String oder ein Date. Datumsangaben in Antworten bleiben so, wie die API sie sendet (ISO-Strings oder Unix-Millisekunden, wo die API diese verwendet).
Timeouts
Ein
timeoutMs von 0 oder weniger, Infinity oder >= 2^31 deaktiviert jedes Timeout, einschließlich der Mindestwerte von 120 s.
Nur fünf Methoden akzeptieren ein AbortSignal: apps.create, apps.commit, files.write, apps.realtime und downloadSnapshot.
reason des Signals abgelehnt, nicht mit einem SquareCloudAPIError. Eine abgebrochene realtime()-Schleife endet einfach.
Konto
api.account.me() gibt den authentifizierten Benutzer sowie die Apps und Datenbanken zurück, die der Schlüssel sehen kann.
api.account.snapshots({ scope }) listet jeden Snapshot des Kontos auf: siehe Snapshots.
Plattformstatus
api.service.status() gibt den öffentlichen Plattformstatus zurück. Die Route benötigt keinen gültigen Schlüssel, der Client verlangt aber trotzdem einen nicht leeren.
unknown bedeutet, dass die Prüfung selbst nicht ausgeführt werden konnte: Es ist kein Beleg für einen Ausfall.
Nächste Schritte
Anwendungen verwalten
Status, Lebenszyklus, Logs und Metriken.
Fehler
Fehlerklasse, Wiederholungen und Rate Limits.
Einführung in die API
Basis-URL, Authentifizierung und eine erste Anfrage.
CLI-Schnellstart
Apps im Terminal deployen und verwalten.

