Armox
    Armox Academy 📚
    Référence APIIntroduction à la Référence APIEndpoint Jobs

    Endpoint Jobs

    Chaque exécution de modèle ou d'app crée un objet job.

    Utilisez les endpoints Jobs pour :

    • lister les jobs récents
    • récupérer un job par son identifiant
    • annuler les jobs annulables

    Chemins de base :

    • GET /api/v1/jobs
    • GET /api/v1/jobs/:id
    • POST /api/v1/jobs/:id/cancel

    Cycle de vie d'un job

    Les jobs utilisent les statuts suivants :

    • pending
    • processing
    • completed
    • failed
    • cancelled
    flowchart LR
      pending --> processing
      processing --> completed
      processing --> failed
      pending --> cancelled
      processing --> cancelled
    

    Les statuts terminaux sont :

    • completed
    • failed
    • cancelled

    GET /api/v1/jobs

    Liste les jobs récents de l'utilisateur authentifié.

    Paramètres de requête

    • limit (optionnel) : 1-100, par défaut 20

    Requête

    curl -X GET "https://armox.ai/api/v1/jobs?limit=20" \
      -H "Authorization: Bearer sk_live_your_key_here"
    

    Réponse

    Prompt Template
    {
      "object": "list",
      "data": [
        {
          "id": "job_123",
          "run_type": "model",
          "model_id": "google/nano-banana",
          "app_id": null,
          "status": "completed",
          "input_data": { "input": { "prompt": "..." } },
          "output_data": { "outputImage": "https://..." },
          "error_message": null,
          "credits_charged": 70,
          "created_at": "2026-03-26T12:30:00.000Z",
          "completed_at": "2026-03-26T12:30:03.000Z"
        }
      ]
    }

    GET /api/v1/jobs/:id

    Retourne un job spécifique.

    Requête

    curl -X GET "https://armox.ai/api/v1/jobs/job_123" \
      -H "Authorization: Bearer sk_live_your_key_here"
    

    Réponse

    {
      "object": "job",
      "id": "job_123",
      "run_type": "model",
      "model_id": "google/nano-banana",
      "app_id": null,
      "status": "completed",
      "input_data": { "input": { "prompt": "..." } },
      "output_data": { "outputImage": "https://..." },
      "error_message": null,
      "credits_charged": 70,
      "created_at": "2026-03-26T12:30:00.000Z",
      "completed_at": "2026-03-26T12:30:03.000Z",
      "webhook_delivered": true
    }
    

    POST /api/v1/jobs/:id/cancel

    Tente d'annuler un job en attente ou en cours de traitement.

    Requête

    curl -X POST "https://armox.ai/api/v1/jobs/job_123/cancel" \
      -H "Authorization: Bearer sk_live_your_key_here"
    

    Réponse en cas de succès

    {
      "id": "job_123",
      "object": "job",
      "status": "cancelled",
      "cancelled_at": "2026-03-26T12:35:00.000Z"
    }
    

    Si le job ne peut plus être annulé, l'API peut retourner 409.


    Schéma de polling

    JavaScript

    Prompt Template
    async function waitForJob(jobId, apiKey) {
      while (true) {
        const response = await fetch(`https://armox.ai/api/v1/jobs/${jobId}`, {
          headers: { Authorization: `Bearer ${apiKey}` },
        });
    
        const job = await response.json();
        if (["completed", "failed", "cancelled"].includes(job.status)) {
          return job;
        }
    
        await new Promise((resolve) => setTimeout(resolve, 2000));
      }
    }

    Python

    Prompt Template
    import time
    import requests
    
    def wait_for_job(job_id, api_key):
        while True:
            response = requests.get(
                f"https://armox.ai/api/v1/jobs/{job_id}",
                headers={"Authorization": f"Bearer {api_key}"}
            )
            job = response.json()
    
            if job.get("status") in ["completed", "failed", "cancelled"]:
                return job
    
            time.sleep(2)

    Crédits et échecs

    • les crédits sont facturés lorsqu'une exécution est acceptée
    • les jobs échoués sont remboursés par le flux d'exécution des jobs
    • les jobs annulés suivent la logique d'annulation et de crédits de la plateforme

    Pages associées

    Prêt à transformer votre workflow créatif ?

    Aucune carte de crédit requise2000 crédits gratuits