Cette page documente
@squarecloud/api v6, une réécriture du SDK. Vous venez de la v5 ? Lisez le guide de migration v5 → v6.Prérequis
- Node.js 22 ou plus récent, Deno, Bun ou un runtime edge. Le SDK n’a besoin que de
fetch,FormData,Blobet des web streams. - Une clé API (voir Clé API et scopes).
@squarecloud/api-types.
Installation
- npm
- pnpm
- yarn
- bun
- deno
Clé API et scopes
Créez une clé sur squarecloud.app/account/security. Le SDK l’envoie telle quelle dans l’en-têteAuthorization (sans préfixe Bearer).
Une clé peut être limitée à des scopes (apps:read, apps:deploy, apps:control, ai:chat, …) et à des applications ou bases de données précises :
- Un appel hors de ces limites lève une
SquareCloudAPIErroravec 403MISSING_SCOPEouRESOURCE_NOT_ALLOWED. - Les méthodes de liste (
account.me(),apps.statusAll(), …) ne renvoient que les ressources que la clé peut voir. - Une clé inconnue, révoquée ou expirée donne 401
ACCESS_DENIED.
SQUARECLOUD_API_KEY. Définissez-la dans le terminal où vous les exécutez :
- macOS / Linux
- Windows (PowerShell)
Créer le client
- TypeScript / ESM
- CommonJS
TypeError dans le constructeur, avant toute requête.
Options
Modules
Les seuls exports d’exécution sont
SquareCloudAPI, SquareCloudAPIError et BASE_URL. Tous les autres exports (App, RuntimeStats, ErrorCode, …) sont des types :
Conventions
L’identifiant d’abord, des données brutes en retour
Chaque méthode prend l’identifiant de la ressource comme premier argument et renvoie des données brutes (pas de classes, pas de cache). Les noms de champs sont ceux de l’API (created_at, version_id, lastModified, joinedAt, netIO, …), la référence de l’API s’applique donc telle quelle.
- Les mutations se résolvent en
void, sauf si l’API renvoie des données (envs.*,deploys.setWebhook,deploys.linkGithubApp,databases.resetCredentialset les méthodescreate). - Un résultat de type chaîne n’est jamais
undefined: il vaut""quand l’API n’en envoie pas. - Les listes arrivent complètes en un seul appel : il n’y a pas de pagination.
Applications de workspace
ChaqueappId accepte aussi la forme composite <appId>-<workspaceId> pour agir sur une application partagée avec vous via un workspace. workspaces.get() et workspaces.list() renvoient les identifiants bruts ; c’est à vous de construire l’identifiant composite :
Les identifiants sont encodés
Les identifiants dans le chemin de l’URL sont encodés en pourcentage. Un identifiant vide,. ou .. atteindrait une autre route : il échoue donc localement avec INVALID_ID (statut 0) avant tout envoi. Les routes de workspace envoient plutôt leurs identifiants dans le corps : là, INVALID_ID (400) vient du serveur.
Dates
Les argumentsstart et end (voir Réseau) acceptent une chaîne ISO 8601 ou une Date. Les dates des réponses restent telles que l’API les envoie (chaînes ISO, ou millisecondes Unix là où l’API les utilise).
Timeouts
Un
timeoutMs de 0 ou moins, Infinity ou >= 2^31 désactive tous les timeouts, planchers de 120 s compris.
Seules cinq méthodes acceptent un AbortSignal : apps.create, apps.commit, files.write, apps.realtime et downloadSnapshot.
reason du signal, et non avec une SquareCloudAPIError. Une boucle realtime() annulée se termine simplement.
Compte
api.account.me() renvoie l’utilisateur authentifié ainsi que les applications et bases de données que la clé peut voir.
api.account.snapshots({ scope }) liste tous les snapshots du compte : voir Snapshots.
Statut de la plateforme
api.service.status() renvoie le statut public de la plateforme. La route n’exige pas de clé valide, mais le client en demande tout de même une non vide.
unknown signifie que la vérification elle-même n’a pas pu s’exécuter : ce n’est pas la preuve d’une panne.
Prochaines étapes
Gérer les applications
Statut, cycle de vie, logs et métriques.
Erreurs
Classe d’erreur, nouvelles tentatives et limites de débit.
Introduction à l'API
URL de base, authentification et une première requête.
Démarrage rapide de la CLI
Déployez et gérez vos applications depuis le terminal.

