Référence de l'API
Chaque point de terminaison public de l'API Node Lodge : authentification, paramètres, corps de requête et un exemple curl pour chacun.
La description lisible par machine de cette API se trouve à https://nodelodge.com/v1/openapi.json (OpenAPI 3.1). Importez-la dans votre client HTTP ou générez-en un client.
Authentification
Chaque point de terminaison indique son mode d’authentification :
- Une clé d’API : envoyez
Authorization: Bearer $NODELODGE_API_KEY. Créez des clés dans la console, sous Keys. Voir le démarrage rapide de l’API pour les portées. - Une session de console : les points de terminaison qu’utilise la console. Connectez-vous avec
POST /v1/auth/loginet conservez le témoin de session (-c cookies.txt), puis renvoyez-le (-b cookies.txt). Avec l’authentification à deux facteurs activée, terminez la connexion avecPOST /v1/auth/mfa/verify, en envoyant le même fichier de témoins avec-b cookies.txt -c cookies.txt. - Aucune : points de terminaison publics.
Une clé d’API sur un point de terminaison qui exige une session de console renvoie 403 API_KEY_NOT_ALLOWED. Requêtes et réponses sont en JSON. Les erreurs ont une seule forme : { "error": { "code": "...", "message": "..." } }.
Connexion et compte
POST /v1/account/close
Fermez votre compte et son organisation.
Authentification : une session de console.
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
password |
chaîne | Oui | jusqu’à 128 caractères |
acceptCreditLoss |
booléen | Non |
curl -X POST "https://nodelodge.com/v1/account/close" \
-b cookies.txt \
-H "Content-Type: application/json" \
-d '{"password":"correct horse battery staple"}'
GET /v1/account/closure
Voyez ce qu’entraînerait la fermeture de votre compte, et ce qui la bloque.
Authentification : une session de console.
curl "https://nodelodge.com/v1/account/closure" \
-b cookies.txt
GET /v1/account/credit
Lisez le crédit prépayé de votre organisation et ses écritures.
Authentification : une session de console.
curl "https://nodelodge.com/v1/account/credit" \
-b cookies.txt
GET /v1/account/funds
Lisez ce que votre organisation peut dépenser maintenant : une nouvelle session est admise sur le montant disponible.
Authentification : une clé d’API avec la portée billing:read, ou une session de console.
curl "https://nodelodge.com/v1/account/funds" \
-H "Authorization: Bearer $NODELODGE_API_KEY"
POST /v1/account/terms
Acceptez les conditions d’utilisation, dans la version qu’indique GET /v1/client-config.
Authentification : une session de console.
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
version |
chaîne | Oui | jusqu’à 20 caractères |
curl -X POST "https://nodelodge.com/v1/account/terms" \
-b cookies.txt \
-H "Content-Type: application/json" \
-d '{"version":"2.0"}'
POST /v1/auth/login
Connectez-vous et recevez un témoin de session.
Authentification : aucune.
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
email |
adresse courriel | Oui | jusqu’à 254 caractères |
password |
chaîne | Oui | jusqu’à 128 caractères |
curl -X POST "https://nodelodge.com/v1/auth/login" \
-c cookies.txt \
-H "Content-Type: application/json" \
-d '{"email":"ada@example.com","password":"correct horse battery staple"}'
POST /v1/auth/logout
Déconnectez cette session.
Authentification : aucune.
curl -X POST "https://nodelodge.com/v1/auth/logout" \
-b cookies.txt
GET /v1/auth/mfa
Lisez l’état de votre authentification à deux facteurs.
Authentification : une session de console.
curl "https://nodelodge.com/v1/auth/mfa" \
-b cookies.txt
POST /v1/auth/mfa/disable
Désactivez l’authentification à deux facteurs.
Authentification : une session de console.
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
password |
chaîne | Oui | jusqu’à 128 caractères |
curl -X POST "https://nodelodge.com/v1/auth/mfa/disable" \
-b cookies.txt \
-H "Content-Type: application/json" \
-d '{"password":"correct horse battery staple"}'
POST /v1/auth/mfa/recovery-codes
Remplacez vos codes de récupération.
Authentification : une session de console.
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
code |
chaîne | Oui | 6 caractères ou plus, jusqu’à 40 caractères |
curl -X POST "https://nodelodge.com/v1/auth/mfa/recovery-codes" \
-b cookies.txt \
-H "Content-Type: application/json" \
-d '{"code":"123456"}'
POST /v1/auth/mfa/step-up
Confirmez votre second facteur avant une action sensible.
Authentification : une session de console.
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
code |
chaîne | Oui | 6 caractères ou plus, jusqu’à 40 caractères |
curl -X POST "https://nodelodge.com/v1/auth/mfa/step-up" \
-b cookies.txt \
-H "Content-Type: application/json" \
-d '{"code":"123456"}'
POST /v1/auth/mfa/totp/confirm
Terminez l’activation d’une application d’authentification.
Authentification : une session de console.
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
code |
chaîne | Oui | 6 caractères ou plus, jusqu’à 40 caractères |
curl -X POST "https://nodelodge.com/v1/auth/mfa/totp/confirm" \
-b cookies.txt \
-H "Content-Type: application/json" \
-d '{"code":"123456"}'
POST /v1/auth/mfa/totp/setup
Commencez l’activation d’une application d’authentification.
Authentification : une session de console.
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
password |
chaîne | Oui | jusqu’à 128 caractères |
curl -X POST "https://nodelodge.com/v1/auth/mfa/totp/setup" \
-b cookies.txt \
-H "Content-Type: application/json" \
-d '{"password":"correct horse battery staple"}'
POST /v1/auth/mfa/verify
Terminez une connexion avec le code de votre application d’authentification.
Authentification : aucune.
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
code |
chaîne | Oui | 6 caractères ou plus, jusqu’à 40 caractères |
curl -X POST "https://nodelodge.com/v1/auth/mfa/verify" \
-b cookies.txt -c cookies.txt \
-H "Content-Type: application/json" \
-d '{"code":"123456"}'
POST /v1/auth/password
Changez votre mot de passe.
Authentification : une session de console.
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
currentPassword |
chaîne | Oui | jusqu’à 128 caractères |
newPassword |
chaîne | Oui | 12 caractères ou plus, jusqu’à 128 caractères |
curl -X POST "https://nodelodge.com/v1/auth/password" \
-b cookies.txt \
-H "Content-Type: application/json" \
-d '{"currentPassword":"correct horse battery staple","newPassword":"a longer passphrase of yours"}'
POST /v1/auth/password-reset/confirm
Définissez un nouveau mot de passe depuis un lien de réinitialisation.
Authentification : aucune.
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
token |
chaîne | Oui | 20 caractères ou plus, jusqu’à 100 caractères |
password |
chaîne | Oui | 12 caractères ou plus, jusqu’à 128 caractères |
curl -X POST "https://nodelodge.com/v1/auth/password-reset/confirm" \
-H "Content-Type: application/json" \
-d '{"token":"TOKEN_FROM_THE_EMAIL_LINK","password":"correct horse battery staple"}'
POST /v1/auth/password-reset/request
Envoyez un lien de réinitialisation du mot de passe par courriel.
Authentification : aucune.
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
email |
adresse courriel | Oui | jusqu’à 254 caractères |
curl -X POST "https://nodelodge.com/v1/auth/password-reset/request" \
-H "Content-Type: application/json" \
-d '{"email":"ada@example.com"}'
POST /v1/auth/sessions/revoke-all
Déconnectez toutes les sessions.
Authentification : une session de console.
curl -X POST "https://nodelodge.com/v1/auth/sessions/revoke-all" \
-b cookies.txt
POST /v1/auth/signup
Créez un compte et son organisation.
Authentification : aucune.
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
email |
adresse courriel | Oui | jusqu’à 254 caractères |
password |
chaîne | Oui | 12 caractères ou plus, jusqu’à 128 caractères |
displayName |
chaîne | Oui | jusqu’à 80 caractères |
organizationName |
chaîne | Non | jusqu’à 120 caractères |
acceptTerms |
true |
Oui | |
inviteToken |
chaîne | Non | 20 caractères ou plus, jusqu’à 100 caractères |
curl -X POST "https://nodelodge.com/v1/auth/signup" \
-H "Content-Type: application/json" \
-d '{"email":"ada@example.com","password":"correct horse battery staple","displayName":"Ada Lovelace","acceptTerms":true}'
POST /v1/auth/verify-email
Confirmez votre adresse courriel depuis le lien reçu.
Authentification : aucune.
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
token |
chaîne | Oui | 20 caractères ou plus, jusqu’à 100 caractères |
curl -X POST "https://nodelodge.com/v1/auth/verify-email" \
-H "Content-Type: application/json" \
-d '{"token":"TOKEN_FROM_THE_EMAIL_LINK"}'
POST /v1/auth/verify-email/resend
Renvoyez le courriel de confirmation.
Authentification : une session de console.
curl -X POST "https://nodelodge.com/v1/auth/verify-email/resend" \
-b cookies.txt
GET /v1/client-config
Lisez les paramètres publics de la console.
Authentification : aucune.
curl "https://nodelodge.com/v1/client-config"
GET /v1/me
Lisez votre profil, votre organisation et vos accès.
Authentification : une session de console.
curl "https://nodelodge.com/v1/me" \
-b cookies.txt
Clés d’API
GET /v1/api-keys
Listez les clés d’API de votre organisation.
Authentification : une session de console.
curl "https://nodelodge.com/v1/api-keys" \
-b cookies.txt
POST /v1/api-keys
Créez une clé d’API. La clé n’est renvoyée qu’une fois; sa création exige l’authentification à deux facteurs et un code récent.
Authentification : une session de console.
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
name |
chaîne | Oui | jusqu’à 60 caractères |
scopes |
tableau de workloads:read, workloads:write, volumes, secrets, billing:read |
Oui | jusqu’à 5 éléments |
monthlySpendCapCents |
entier | Non | de 1 à 10000000 |
maxConcurrentWorkloads |
entier | Non | de 1 à 100 |
maxTotalSpendCents |
entier | Non | de 1 à 10000000 |
maxSessionSpendCents |
entier | Non | de 1 à 10000000 |
expiresInDays |
entier | Non | de 1 à 365, par défaut 90 |
curl -X POST "https://nodelodge.com/v1/api-keys" \
-b cookies.txt \
-H "Content-Type: application/json" \
-d '{"name":"ci-runner","scopes":["workloads:read"]}'
PATCH /v1/api-keys/{id}
Modifiez les plafonds de dépenses d’une clé d’API. Exige un code à deux facteurs récent.
Authentification : une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
id |
chemin | UUID | Oui |
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
monthlySpendCapCents |
entier | Non | |
maxConcurrentWorkloads |
entier | Non | |
maxTotalSpendCents |
entier | Non | |
maxSessionSpendCents |
entier | Non |
curl -X PATCH "https://nodelodge.com/v1/api-keys/$API_KEY_ID" \
-b cookies.txt \
-H "Content-Type: application/json" \
-d '{"monthlySpendCapCents":1}'
DELETE /v1/api-keys/{id}
Révoquez une clé d’API. Les requêtes qui l’utilisent s’arrêtent immédiatement.
Authentification : une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
id |
chemin | UUID | Oui |
curl -X DELETE "https://nodelodge.com/v1/api-keys/$API_KEY_ID" \
-b cookies.txt
GET /v1/whoami
Vérifiez une clé ou une session : l’organisation et les portées qu’elle porte.
Authentification : une clé d’API (toute portée), ou une session de console.
curl "https://nodelodge.com/v1/whoami" \
-H "Authorization: Bearer $NODELODGE_API_KEY"
Catalogue Community
GET /v1/catalog/offers
Recherchez des machines Community.
Authentification : une clé d’API avec la portée workloads:read, ou une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
gpuModel |
requête | chaîne | Non | jusqu’à 80 caractères |
minGpuCount |
requête | entier | Non | de 0 à 16 |
minVramGb |
requête | nombre | Non | de 0 à 1024 |
minRamGb |
requête | nombre | Non | de 0 à 65536 |
minVcpu |
requête | entier | Non | de 0 à 4096 |
region |
requête | chaîne | Non | |
maxPricePerHourCents |
requête | entier | Non | de 1 à 9007199254740991 |
onlineOnly |
requête | true, false |
Non | |
sort |
requête | price_asc, price_desc, vram_desc |
Non | par défaut "price_asc" |
limit |
requête | entier | Non | de 1 à 100, par défaut 50 |
curl "https://nodelodge.com/v1/catalog/offers" \
-H "Authorization: Bearer $NODELODGE_API_KEY"
GET /v1/catalog/offers/{id}
Lisez une offre Community.
Authentification : une clé d’API avec la portée workloads:read, ou une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
id |
chemin | UUID | Oui |
curl "https://nodelodge.com/v1/catalog/offers/$OFFER_ID" \
-H "Authorization: Bearer $NODELODGE_API_KEY"
GET /v1/catalog/offers/{id}/quote
Chiffrez une location Community pour un nombre d’heures.
Authentification : une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
durationHours |
requête | entier | Oui | de 1 à 720 |
id |
chemin | UUID | Oui |
curl "https://nodelodge.com/v1/catalog/offers/$OFFER_ID/quote?durationHours=2" \
-b cookies.txt
Catalogue Secure
GET /v1/catalog/partner-offers
Listez les machines Secure, en stock d’abord, puis en rupture avec la dernière date de disponibilité de chacune.
Authentification : une clé d’API avec la portée workloads:read, ou une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
includeUnavailable |
requête | true, false |
Non | par défaut "true" |
curl "https://nodelodge.com/v1/catalog/partner-offers" \
-H "Authorization: Bearer $NODELODGE_API_KEY"
GET /v1/catalog/partner-offers/{id}
Lisez une offre Secure.
Authentification : une clé d’API avec la portée workloads:read, ou une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
id |
chemin | UUID | Oui |
curl "https://nodelodge.com/v1/catalog/partner-offers/$PARTNER_OFFER_ID" \
-H "Authorization: Bearer $NODELODGE_API_KEY"
Sessions de calcul
GET /v1/client-address
Lisez l’adresse IPv4 publique d’où partent vos requêtes, pour autoriser SSH vers une machine en centre de données.
Authentification : une clé d’API avec la portée workloads:read, ou une session de console.
curl "https://nodelodge.com/v1/client-address" \
-H "Authorization: Bearer $NODELODGE_API_KEY"
GET /v1/environments
Listez les environnements prêts à l’emploi; avec une offre, si chacun fonctionne sur sa machine, et sinon pourquoi.
Authentification : une clé d’API avec la portée workloads:read, ou une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
offerId |
requête | UUID | Non |
curl "https://nodelodge.com/v1/environments" \
-H "Authorization: Bearer $NODELODGE_API_KEY"
GET /v1/sessions
Listez vos sessions de calcul, comme locataire ou comme fournisseur.
Authentification : une clé d’API avec la portée workloads:read, ou une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
side |
requête | renter, provider |
Non | par défaut "renter" |
limit |
requête | entier | Non | de 1 à 200, par défaut 50 |
curl "https://nodelodge.com/v1/sessions" \
-H "Authorization: Bearer $NODELODGE_API_KEY"
POST /v1/sessions
Démarrez une session de calcul. Son budget est réservé sur le crédit prépayé et jamais dépassé; la facturation suit le temps réel dès que la machine est prête. Indiquez des identifiants de clés SSH enregistrées, ou une clé publique pour cette session seulement. Avec une clé d’API, le budget compte dans les limites de la clé.
Authentification : une clé d’API avec la portée workloads:write, ou une session de console.
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
offerId |
UUID | Non | |
partnerOfferId |
UUID | Non | |
environmentId |
chaîne | Oui | |
sshKeyIds |
tableau d’UUID | Non | jusqu’à 10 éléments |
sshPublicKey |
chaîne | Non | 40 caractères ou plus, jusqu’à 16384 caractères |
budgetCents |
entier | Oui | de 1 à 10000000 |
maxDurationHours |
entier | Non | de 1 à 2160 |
pricing |
on_demand, interruptible, reserved |
Oui | |
reservedDays |
entier | Non | de 1 à 30 |
model |
objet | Non | |
allowedCidr |
chaîne | Non | 7 caractères ou plus, jusqu’à 18 caractères |
curl -X POST "https://nodelodge.com/v1/sessions" \
-H "Authorization: Bearer $NODELODGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"partnerOfferId":"3f0c8f5e-8c3a-4f39-9a8e-2d9b4c1e7a10","environmentId":"jupyterlab","budgetCents":500,"pricing":"on_demand","sshPublicKey":"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIReplaceWithYourOwnPublicKey you@laptop","allowedCidr":"203.0.113.7"}'
GET /v1/sessions/{id}
Lisez une session de calcul. Pendant son démarrage, launch donne ses étapes (commande passée, machine allouée, machine démarrée, vérification de l’environnement et de la stabilité, prête) et celle qui est en cours.
Authentification : une clé d’API avec la portée workloads:read, ou une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
id |
chemin | UUID | Oui |
curl "https://nodelodge.com/v1/sessions/$SESSION_ID" \
-H "Authorization: Bearer $NODELODGE_API_KEY"
GET /v1/sessions/{id}/access
Lisez comment vous connecter à une session Community prête : SSH par le relais et JupyterLab. Locataire seulement; avec une clé d’API, seulement les sessions lancées avec cette clé. Une session Secure prête donne son adresse SSH dans directSsh.
Authentification : une clé d’API avec la portée workloads:write, ou une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
id |
chemin | UUID | Oui |
curl "https://nodelodge.com/v1/sessions/$SESSION_ID/access" \
-H "Authorization: Bearer $NODELODGE_API_KEY"
POST /v1/sessions/{id}/budget
Augmentez le budget d’une session en cours, en réservant la différence sur le crédit prépayé. Avec une clé d’API, seulement les sessions lancées avec cette clé, dans ses limites.
Authentification : une clé d’API avec la portée workloads:write, ou une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
id |
chemin | UUID | Oui |
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
budgetCents |
entier | Oui | de 1 à 10000000 |
curl -X POST "https://nodelodge.com/v1/sessions/$SESSION_ID/budget" \
-H "Authorization: Bearer $NODELODGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"budgetCents":1}'
GET /v1/sessions/{id}/receipt
Obtenez le reçu de consommation d’une session terminée, en JSON ou en CSV avec format=csv.
Authentification : une clé d’API avec la portée workloads:read, ou une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
format |
requête | json, csv |
Non | par défaut "json" |
id |
chemin | UUID | Oui |
curl "https://nodelodge.com/v1/sessions/$SESSION_ID/receipt" \
-H "Authorization: Bearer $NODELODGE_API_KEY"
POST /v1/sessions/{id}/stop
Arrêtez une session de calcul. La facturation prend fin à son arrêt effectif et le reste du budget est libéré.
Authentification : une clé d’API avec la portée workloads:write, ou une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
id |
chemin | UUID | Oui |
curl -X POST "https://nodelodge.com/v1/sessions/$SESSION_ID/stop" \
-H "Authorization: Bearer $NODELODGE_API_KEY"
Clés SSH
GET /v1/ssh-keys
Listez vos clés SSH publiques.
Authentification : une clé d’API avec la portée workloads:read, ou une session de console.
curl "https://nodelodge.com/v1/ssh-keys" \
-H "Authorization: Bearer $NODELODGE_API_KEY"
POST /v1/ssh-keys
Ajoutez une clé SSH publique. Exige un code à deux facteurs récent si l’authentification à deux facteurs est activée.
Authentification : une session de console.
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
name |
chaîne | Non | jusqu’à 60 caractères |
publicKey |
chaîne | Oui | jusqu’à 16384 caractères |
curl -X POST "https://nodelodge.com/v1/ssh-keys" \
-b cookies.txt \
-H "Content-Type: application/json" \
-d '{"publicKey":"text"}'
DELETE /v1/ssh-keys/{id}
Supprimez une de vos clés SSH publiques. Les sessions déjà démarrées conservent la leur.
Authentification : une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
id |
chemin | UUID | Oui |
curl -X DELETE "https://nodelodge.com/v1/ssh-keys/$SSH_KEY_ID" \
-b cookies.txt
Locations
GET /v1/reservations
Listez vos locations, comme locataire ou comme fournisseur.
Authentification : une clé d’API avec la portée workloads:read, ou une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
side |
requête | renter, provider |
Non | par défaut "renter" |
hostId |
requête | UUID | Non | |
limit |
requête | entier | Non | de 1 à 200, par défaut 50 |
curl "https://nodelodge.com/v1/reservations" \
-H "Authorization: Bearer $NODELODGE_API_KEY"
POST /v1/reservations
Réservez une machine. Quand les machines en centre de données démarrent en sessions, une offre partenaire répond 409 SESSION_REQUIRED : utilisez POST /v1/sessions. À la demande, le montant retenu couvre les 60 prochaines minutes et se renouvelle tant que la machine tourne; la facturation se fait par minute entamée d’utilisation réelle, sans minimum d’une heure.
Authentification : une clé d’API avec la portée workloads:write, ou une session de console.
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
offerId |
UUID | Oui | |
durationHours |
entier | Oui | de 1 à 720 |
startsAt |
date et heure (ISO 8601) | Non |
curl -X POST "https://nodelodge.com/v1/reservations" \
-H "Authorization: Bearer $NODELODGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"offerId":"3f0c8f5e-8c3a-4f39-9a8e-2d9b4c1e7a10","durationHours":2}'
GET /v1/reservations/summary
Comptez vos locations par statut.
Authentification : une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
side |
requête | renter, provider |
Non | par défaut "renter" |
curl "https://nodelodge.com/v1/reservations/summary" \
-b cookies.txt
GET /v1/reservations/{id}
Lisez une location.
Authentification : une clé d’API avec la portée workloads:read, ou une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
id |
chemin | UUID | Oui |
curl "https://nodelodge.com/v1/reservations/$RESERVATION_ID" \
-H "Authorization: Bearer $NODELODGE_API_KEY"
POST /v1/reservations/{id}/cancel
Annulez une location avant son début.
Authentification : une clé d’API avec la portée workloads:write, ou une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
id |
chemin | UUID | Oui |
curl -X POST "https://nodelodge.com/v1/reservations/$RESERVATION_ID/cancel" \
-H "Authorization: Bearer $NODELODGE_API_KEY"
POST /v1/reservations/{id}/complete
Terminez une location en cours.
Authentification : une clé d’API avec la portée workloads:write, ou une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
id |
chemin | UUID | Oui |
curl -X POST "https://nodelodge.com/v1/reservations/$RESERVATION_ID/complete" \
-H "Authorization: Bearer $NODELODGE_API_KEY"
POST /v1/reservations/{id}/start
Démarrez une location avec votre clé SSH et l’adresse IP autorisée à se connecter.
Authentification : une clé d’API avec la portée workloads:write, ou une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
id |
chemin | UUID | Oui |
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
sshPublicKey |
chaîne | Oui | 40 caractères ou plus, jusqu’à 2000 caractères |
allowedCidr |
chaîne | Oui | 7 caractères ou plus, jusqu’à 18 caractères |
curl -X POST "https://nodelodge.com/v1/reservations/$RESERVATION_ID/start" \
-H "Authorization: Bearer $NODELODGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"sshPublicKey":"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIReplaceWithYourOwnPublicKey you@laptop","allowedCidr":"203.0.113.7"}'
Facturation et crédit
GET /v1/billing
Lisez votre solde, votre carte et vos paiements.
Authentification : une session de console.
curl "https://nodelodge.com/v1/billing" \
-b cookies.txt
PUT /v1/billing/auto-topup
Activez ou modifiez la recharge automatique de votre crédit.
Authentification : une session de console.
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
thresholdCents |
entier | Oui | de 500 à 1000000 |
amountCents |
entier | Oui | de 1000 à 1000000 |
curl -X PUT "https://nodelodge.com/v1/billing/auto-topup" \
-b cookies.txt \
-H "Content-Type: application/json" \
-d '{"thresholdCents":500,"amountCents":2500}'
DELETE /v1/billing/auto-topup
Désactivez la recharge automatique.
Authentification : une session de console.
curl -X DELETE "https://nodelodge.com/v1/billing/auto-topup" \
-b cookies.txt
POST /v1/billing/card
Commencez l’enregistrement d’une carte, sur une page de paiement hébergée.
Authentification : une session de console.
curl -X POST "https://nodelodge.com/v1/billing/card" \
-b cookies.txt
DELETE /v1/billing/card
Supprimez votre carte enregistrée.
Authentification : une session de console.
curl -X DELETE "https://nodelodge.com/v1/billing/card" \
-b cookies.txt
POST /v1/billing/credit
Achetez du crédit prépayé, sur une page de paiement hébergée.
Authentification : une session de console.
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
amountCents |
entier | Oui | de 1000 à 1000000 |
curl -X POST "https://nodelodge.com/v1/billing/credit" \
-b cookies.txt \
-H "Content-Type: application/json" \
-d '{"amountCents":2500}'
GET /v1/limits
Lisez les limites du compte de votre organisation : GPU à la fois, classes de GPU, crédit par tranche de 24 heures, ce qui est utilisé et le palier suivant.
Authentification : une clé d’API avec la portée billing:read, ou une session de console.
curl "https://nodelodge.com/v1/limits" \
-H "Authorization: Bearer $NODELODGE_API_KEY"
Machines (fournisseurs)
GET /v1/hosts
Listez vos machines.
Authentification : une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
limit |
requête | entier | Non | de 1 à 500, par défaut 100 |
cursor |
requête | chaîne | Non | jusqu’à 200 caractères |
curl "https://nodelodge.com/v1/hosts" \
-b cookies.txt
POST /v1/hosts/enrollment-codes
Créez un code à usage unique pour appairer une machine.
Authentification : une session de console.
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
hostName |
chaîne | Oui | jusqu’à 80 caractères |
curl -X POST "https://nodelodge.com/v1/hosts/enrollment-codes" \
-b cookies.txt \
-H "Content-Type: application/json" \
-d '{"hostName":"garage-4090"}'
GET /v1/hosts/{hostId}
Lisez une de vos machines.
Authentification : une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
hostId |
chemin | UUID | Oui |
curl "https://nodelodge.com/v1/hosts/$HOST_ID" \
-b cookies.txt
DELETE /v1/hosts/{hostId}
Retirez une machine révoquée de vos listes.
Authentification : une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
hostId |
chemin | UUID | Oui |
curl -X DELETE "https://nodelodge.com/v1/hosts/$HOST_ID" \
-b cookies.txt
POST /v1/hosts/{hostId}/{action}
Désactivez, activez ou révoquez une machine.
Authentification : une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
hostId |
chemin | UUID | Oui | |
action |
chemin | disable, enable, revoke |
Oui |
curl -X POST "https://nodelodge.com/v1/hosts/$HOST_ID/disable" \
-b cookies.txt
Offres (fournisseurs)
GET /v1/hosts/{hostId}/offer
Lisez l’offre d’une machine.
Authentification : une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
hostId |
chemin | UUID | Oui |
curl "https://nodelodge.com/v1/hosts/$HOST_ID/offer" \
-b cookies.txt
PUT /v1/hosts/{hostId}/offer
Fixez le taux horaire, la région et les limites de réservation d’une machine.
Authentification : une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
hostId |
chemin | UUID | Oui |
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
pricePerHourCents |
entier | Oui | de 1 à 1000000 |
regionCode |
chaîne | Oui | |
minHours |
entier | Non | de 1 à 720, par défaut 1 |
maxHours |
entier | Non | de 1 à 720, par défaut 24 |
curl -X PUT "https://nodelodge.com/v1/hosts/$HOST_ID/offer" \
-b cookies.txt \
-H "Content-Type: application/json" \
-d '{"pricePerHourCents":150,"regionCode":"CA-QC"}'
POST /v1/hosts/{hostId}/offer/{action}
Publiez ou dépubliez l’offre d’une machine.
Authentification : une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
hostId |
chemin | UUID | Oui | |
action |
chemin | publish, unpublish |
Oui |
curl -X POST "https://nodelodge.com/v1/hosts/$HOST_ID/offer/publish" \
-b cookies.txt
Notifications
GET /v1/notifications
Listez vos notifications.
Authentification : une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
limit |
requête | entier | Non | de 1 à 100, par défaut 20 |
cursor |
requête | chaîne | Non | jusqu’à 200 caractères |
unread |
requête | true, false |
Non | par défaut "false" |
curl "https://nodelodge.com/v1/notifications" \
-b cookies.txt
GET /v1/notifications/preferences
Lisez vos réglages de notification.
Authentification : une session de console.
curl "https://nodelodge.com/v1/notifications/preferences" \
-b cookies.txt
PUT /v1/notifications/preferences
Modifiez vos réglages de notification.
Authentification : une session de console.
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
types |
tableau d’objets | Non | jusqu’à 31 éléments |
creditLowThresholdCents |
entier | Non |
curl -X PUT "https://nodelodge.com/v1/notifications/preferences" \
-b cookies.txt \
-H "Content-Type: application/json" \
-d '{"types":[{"type":"session.ending_soon","email":false}]}'
POST /v1/notifications/read-all
Marquez toutes les notifications comme lues.
Authentification : une session de console.
curl -X POST "https://nodelodge.com/v1/notifications/read-all" \
-b cookies.txt
GET /v1/notifications/unread-count
Comptez vos notifications non lues.
Authentification : une session de console.
curl "https://nodelodge.com/v1/notifications/unread-count" \
-b cookies.txt
POST /v1/notifications/unsubscribe
Arrêtez un type de courriel, depuis le lien de ce courriel.
Authentification : aucune.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
token |
requête | chaîne | Non | jusqu’à 100 caractères |
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
token |
chaîne | Non | jusqu’à 100 caractères |
List-Unsubscribe |
One-Click |
Non |
curl -X POST "https://nodelodge.com/v1/notifications/unsubscribe" \
-H "Content-Type: application/json" \
-d '{"token":"TOKEN_FROM_THE_EMAIL_LINK"}'
POST /v1/notifications/{id}/read
Marquez une notification comme lue.
Authentification : une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
id |
chemin | UUID | Oui |
curl -X POST "https://nodelodge.com/v1/notifications/$NOTIFICATION_ID/read" \
-b cookies.txt
Activité
GET /v1/audit-events
Listez l’activité de votre organisation.
Authentification : une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
limit |
requête | entier | Non | de 1 à 200, par défaut 50 |
curl "https://nodelodge.com/v1/audit-events" \
-b cookies.txt
Support
POST /v1/public/abuse-reports
Signalez un abus commis depuis une machine Node Lodge, sans compte.
Authentification : aucune.
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
email |
adresse courriel | Oui | jusqu’à 254 caractères |
name |
chaîne | Non | jusqu’à 120 caractères |
kind |
malware, phishing, spam, network_attack, copyright, illegal_content, other |
Oui | |
target |
chaîne | Oui | 3 caractères ou plus, jusqu’à 500 caractères |
description |
chaîne | Oui | 20 caractères ou plus, jusqu’à 5000 caractères |
evidence |
chaîne | Non | jusqu’à 2000 caractères |
website |
chaîne | Non | jusqu’à 500 caractères |
elapsedMs |
entier | Oui | de 0 à 86400000 |
proof |
objet | Oui |
curl -X POST "https://nodelodge.com/v1/public/abuse-reports" \
-H "Content-Type: application/json" \
-d '{"email":"ada@example.com","kind":"phishing","target":"https://example.com/login","description":"A login page imitating a bank is served from this address.","website":"","elapsedMs":12000,"proof":{"salt":"abababababababababababab","challenge":"cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd","number":48211,"expiresAt":"2026-11-06T10:10:00.000Z","signature":"efefefefefefefefefefefefefefefefefefefefefefefefefefefefefefefef"}}'
GET /v1/public/abuse/challenge
Obtenez le défi de preuve de travail que le formulaire de signalement d’abus résout avant l’envoi.
Authentification : aucune.
curl "https://nodelodge.com/v1/public/abuse/challenge"
POST /v1/support/attachments
Obtenez un lien d’envoi valable 5 minutes pour un fichier à joindre (PNG, JPEG, WebP, PDF, texte, JSON, CSV, 10 Mo au plus).
Authentification : une session de console.
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
ticketId |
UUID | Non | |
fileName |
chaîne | Oui | jusqu’à 255 caractères |
contentType |
chaîne | Oui | jusqu’à 100 caractères |
sizeBytes |
entier | Oui | de 1 à 10485760 |
curl -X POST "https://nodelodge.com/v1/support/attachments" \
-b cookies.txt \
-H "Content-Type: application/json" \
-d '{"fileName":"text","contentType":"text","sizeBytes":1}'
GET /v1/support/attachments/{id}
Obtenez un lien de téléchargement valable 60 secondes pour une pièce jointe.
Authentification : une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
id |
chemin | UUID | Oui |
curl "https://nodelodge.com/v1/support/attachments/$ATTACHMENT_ID" \
-b cookies.txt
GET /v1/support/options
Listez les sessions et les paiements que peut viser une demande de support.
Authentification : une session de console.
curl "https://nodelodge.com/v1/support/options" \
-b cookies.txt
GET /v1/support/tickets
Listez vos demandes de support, les plus récemment actives d’abord. Les propriétaires et les administrateurs voient toutes les demandes de l’organisation.
Authentification : une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
limit |
requête | entier | Non | de 1 à 100, par défaut 50 |
cursor |
requête | chaîne | Non | jusqu’à 200 caractères |
status |
requête | open, waiting_on_customer, resolved, closed |
Non |
curl "https://nodelodge.com/v1/support/tickets" \
-b cookies.txt
POST /v1/support/tickets
Ouvrez une demande de support, au besoin au sujet d’une session ou d’un paiement de votre organisation.
Authentification : une session de console.
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
category |
limit_increase, billing, technical, account_security, abuse |
Oui | |
subject |
chaîne | Oui | 3 caractères ou plus, jusqu’à 200 caractères |
body |
chaîne | Oui | jusqu’à 10000 caractères |
sessionId |
UUID | Non | |
paymentId |
UUID | Non | |
errorReference |
chaîne | Non | jusqu’à 64 caractères |
requestedTier |
1 ou 2 ou 3 |
Non | |
attachmentIds |
tableau d’UUID | Non | jusqu’à 5 éléments |
followUpOf |
UUID | Non |
curl -X POST "https://nodelodge.com/v1/support/tickets" \
-b cookies.txt \
-H "Content-Type: application/json" \
-d '{"category":"technical","subject":"Jupyter does not open","body":"The session is ready but the notebook page stays blank."}'
GET /v1/support/tickets/{id}
Lisez une demande de support et ses messages.
Authentification : une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
id |
chemin | UUID | Oui |
curl "https://nodelodge.com/v1/support/tickets/$TICKET_ID" \
-b cookies.txt
POST /v1/support/tickets/{id}/messages
Répondez à une demande de support. Une réponse à une demande résolue la rouvre dans un délai de 14 jours.
Authentification : une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
id |
chemin | UUID | Oui |
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
body |
chaîne | Oui | jusqu’à 10000 caractères |
attachmentIds |
tableau d’UUID | Non | jusqu’à 5 éléments |
curl -X POST "https://nodelodge.com/v1/support/tickets/$TICKET_ID/messages" \
-b cookies.txt \
-H "Content-Type: application/json" \
-d '{"body":"text"}'
POST /v1/support/tickets/{id}/rating
Évaluez la réponse à une demande résolue.
Authentification : une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
id |
chemin | UUID | Oui |
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
rating |
good, bad |
Oui | |
comment |
chaîne | Non | jusqu’à 1000 caractères |
curl -X POST "https://nodelodge.com/v1/support/tickets/$TICKET_ID/rating" \
-b cookies.txt \
-H "Content-Type: application/json" \
-d '{"rating":"good"}'
POST /v1/support/tickets/{id}/reopen
Rouvrez une demande résolue, dans les 14 jours suivant sa résolution.
Authentification : une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
id |
chemin | UUID | Oui |
curl -X POST "https://nodelodge.com/v1/support/tickets/$TICKET_ID/reopen" \
-b cookies.txt
POST /v1/support/tickets/{id}/resolve
Marquez une demande de support comme résolue.
Authentification : une session de console.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
id |
chemin | UUID | Oui |
curl -X POST "https://nodelodge.com/v1/support/tickets/$TICKET_ID/resolve" \
-b cookies.txt
Site public
POST /v1/access-requests
Demandez l’accès à Node Lodge.
Authentification : aucune.
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
email |
adresse courriel | Oui | jusqu’à 254 caractères |
company |
chaîne | Non | jusqu’à 120 caractères |
role |
renter, provider |
Oui | |
useCase |
chaîne | Oui | |
website |
chaîne | Non | jusqu’à 500 caractères |
curl -X POST "https://nodelodge.com/v1/access-requests" \
-H "Content-Type: application/json" \
-d '{"email":"ada@example.com","role":"renter","useCase":"Fine-tune a 7B model overnight"}'
POST /v1/newsletter
Abonnez-vous à l’infolettre.
Authentification : aucune.
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
email |
chaîne | Oui | jusqu’à 254 caractères |
locale |
en, fr, de, es |
Non |
curl -X POST "https://nodelodge.com/v1/newsletter" \
-H "Content-Type: application/json" \
-d '{"email":"ada@example.com"}'
POST /v1/newsletter/confirm
Confirmez un abonnement à l’infolettre.
Authentification : aucune.
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
token |
chaîne | Oui | jusqu’à 200 caractères |
curl -X POST "https://nodelodge.com/v1/newsletter/confirm" \
-H "Content-Type: application/json" \
-d '{"token":"TOKEN_FROM_THE_EMAIL_LINK"}'
POST /v1/newsletter/unsubscribe
Désabonnez-vous de l’infolettre.
Authentification : aucune.
| Nom | Emplacement | Type | Requis | Règles |
|---|---|---|---|---|
token |
requête | chaîne | Non | jusqu’à 200 caractères |
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
token |
chaîne | Non | jusqu’à 200 caractères |
List-Unsubscribe |
One-Click |
Non |
curl -X POST "https://nodelodge.com/v1/newsletter/unsubscribe" \
-H "Content-Type: application/json" \
-d '{"token":"TOKEN_FROM_THE_EMAIL_LINK"}'
GET /v1/public/gpus
Listez les modèles de GPU proposés, tels que les affiche le site public.
Authentification : aucune.
curl "https://nodelodge.com/v1/public/gpus"
Autres
POST /v1/smart-launch/recommend
Obtenez des machines recommandées pour une charge de travail, avec les raisons et leurs limites.
Authentification : une session de console.
Corps de la requête (JSON) :
| Champ | Type | Requis | Règles |
|---|---|---|---|
useCase |
run_model, fine_tune, generate_images, notebook |
Oui | |
modelId |
chaîne | Non | jusqu’à 80 caractères |
quantization |
fp16, int8, int4 |
Non | par défaut "fp16" |
contextTokens |
entier | Non | de 1 à 1048576, par défaut 4096 |
concurrency |
entier | Non | de 1 à 256, par défaut 1 |
minVramGb |
entier | Non | de 1 à 1024 |
budgetUsd |
nombre | Non | au plus 1000000 |
maxPricePerHourUsd |
nombre | Non | au plus 10000 |
tier |
secure, community, either |
Non | par défaut "either" |
countries |
tableau de chaînes | Non | jusqu’à 40 éléments, par défaut [] |
curl -X POST "https://nodelodge.com/v1/smart-launch/recommend" \
-b cookies.txt \
-H "Content-Type: application/json" \
-d '{"useCase":"run_model"}'