Docs

API

Authentifiez-vous avec un jeton, puis cherchez, louez, gérez et payez en JSON simple.

L’essentiel

  • URL de base : $ARRAKIS_URL. Chaque requête et chaque réponse sont en JSON.
  • Authentifiez-vous avec Authorization: Bearer ark_.... C’est le jeton qui détermine le compte.
  • Les erreurs prennent la forme {"detail": "..."} avec un code de statut explicite : 401 (jeton), 402 (solde ou plafond de dépenses), 403 (portée), 404, 409, 422 (paramètres), 429 (ralentissez), 503 (la location n’est pas encore ouverte).
  • Le schéma complet se trouve sur /openapi.json ; essayez les appels dans la référence interactive.

Jetons et portées

PortéeAutorise
readChercher des machines ; consulter vos machines, volumes et images
rentLouer, redémarrer et arrêter des machines
manageCréer et révoquer des jetons ; enregistrer des clés SSH et des images
billingSolde, paiements, recharge automatique, arrêt d’urgence

Créez des jetons dans API & agents ou avec POST /v1/tokens. Un jeton peut porter spend_limit_usd, max_rental_hours et expires_at. Un jeton ne peut créer que des jetons dotés de portées qu’il possède, dans la limite de ses propres plafonds.

Sans jeton

Shell
curl $ARRAKIS_URL/v1/market/summary

Renvoie les prix en temps réel et la disponibilité par famille de GPU.

Louer une machine

Shell
curl -X POST $ARRAKIS_URL/v1/instances \
  -H "Authorization: Bearer $ARRAKIS_TOKEN" -H "Content-Type: application/json" \
  -d '{"node_id": "<node>", "name": "eval", "ssh_public_key": "ssh-ed25519 AAAA...",
       "termination_hours": 4, "idempotency_key": "eval-2026-10-14"}'

Trouvez un node_id avec GET /v1/gpus ; son tier indique on_demand ou spot. Le solde doit couvrir la première heure (sinon 402), facturée quand la machine démarre (minimum 1 heure). Envoyez max_price_per_gpu_hour pour louer au plus au prix que vous avez vu (GET /v1/gpus/{node_id}/price) : si le prix en direct est plus élevé, rien n’est loué et la réponse est 409.

Routes principales

MéthodeCheminCe qu’il fait
GET/v1/market/summaryPrix en temps réel par famille de GPU (public)
GET/v1/market/historyLes prix heure par heure de chaque famille de GPU, en JSON ou en CSV avec format=csv (public)
GET/v1/models/fit?model=owner/nameLa mémoire GPU dont un modèle de Hugging Face a besoin et les GPU les moins chers qui le contiennent en ce moment (public)
GET/v1/gpusLes machines que vous pouvez louer, les moins chères d’abord
GET/v1/gpus/{node_id}/priceLe prix en direct d’une machine maintenant
POST/v1/instancesLouer une machine
GET/v1/instances, /v1/instances/{id}Vos machines
POST/v1/instances/{id}/terminateArrêter et supprimer une machine
POST/v1/instances/{id}/schedule-removalFixer l’heure de suppression automatique
GET / POST / DELETE/v1/volumesVos volumes : ce qu’ils contiennent, ce qu’ils coûtent, où ils sont montés
GET/v1/billing/accountSolde, rythme de dépense, date d’épuisement des fonds
POST/v1/billing/checkoutLancer un paiement par carte, Link ou Apple Pay
POST/v1/billing/stopTout arrêter et suspendre les locations
GET / POST / DELETE/v1/tokensLister, créer et révoquer des jetons
GET/v1/support/casesVos demandes d’assistance et nos réponses
POST/mcpMCP pour les agents

Nouvelles tentatives

Envoyez la même idempotency_key quand vous relancez une location : vous récupérez la même machine, jamais une deuxième.

Vous êtes un agent ? Cette page en Markdown.