Armox
    Armox Academy 📚
    API ReferenceAPI Reference Introduction

    API Reference Introduction

    The Armox Public API lets eligible subscribers run the same models and app workflows that power Armox Canvas, directly from your backend, automations, and internal tools.

    Use this page as your starting point, then go to the dedicated endpoint pages for full request/response references and production patterns.


    Who Can Use This API

    Public API access is available for these plans:

    • Agency
    • Master / Business
    • Enterprise

    Public API access is not available for Free/Pro plans.

    Base URL

    Use the Armox production API base URL for all endpoints:

    https://armox.ai/api/v1


    Authentication

    All API endpoints require a Bearer API key in the Authorization header:

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

    Manage keys from:

    • https://armox.ai/app/settings/api-keys

    For full key management and security practices, see:


    API Sections


    Quick Start in 5 Steps

    1. Create an API key in /app/settings/api-keys
    2. Call GET /api/v1/models to discover valid model IDs and settings
    3. Run a model with POST /api/v1/models/run
    4. If response is async (status: "processing"), poll GET /api/v1/jobs/:id
    5. Optional: add webhook_url to receive completion events

    Your First Request

    cURL

    Prompt Template
    curl -X POST "https://armox.ai/api/v1/models/run" \
      -H "Authorization: Bearer sk_live_your_key_here" \
      -H "Content-Type: application/json" \
      -d '{
        "model": "google/nano-banana",
        "input": {
          "prompt": "Turn this into a cinematic night street photo with neon signs and reflections.",
          "image_input": ["https://example.com/reference-image.jpg"],
          "aspect_ratio": "match_input_image",
          "output_format": "png"
        }
      }'

    JavaScript (fetch)

    Prompt Template
    const response = await fetch("https://armox.ai/api/v1/models/run", {
      method: "POST",
      headers: {
        Authorization: "Bearer sk_live_your_key_here",
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        model: "google/nano-banana",
        input: {
          prompt: "Turn this into a cinematic night street photo with neon signs and reflections.",
          image_input: ["https://example.com/reference-image.jpg"],
          aspect_ratio: "match_input_image",
          output_format: "png",
        },
      }),
    });
    
    const data = await response.json();
    console.log(data);

    Python

    Prompt Template
    import requests
    
    response = requests.post(
        "https://armox.ai/api/v1/models/run",
        headers={
            "Authorization": "Bearer sk_live_your_key_here",
            "Content-Type": "application/json",
        },
        json={
            "model": "google/nano-banana",
            "input": {
                "prompt": "Turn this into a cinematic night street photo with neon signs and reflections.",
                "image_input": ["https://example.com/reference-image.jpg"],
                "aspect_ratio": "match_input_image",
                "output_format": "png",
            },
        },
    )
    
    print(response.status_code)
    print(response.json())

    Go

    Prompt Template
    package main
    
    import (
      "bytes"
      "encoding/json"
      "fmt"
      "net/http"
    )
    
    func main() {
      payload := map[string]any{
        "model": "google/nano-banana",
        "input": map[string]any{
          "prompt": "Turn this into a cinematic night street photo with neon signs and reflections.",
          "image_input": []string{"https://example.com/reference-image.jpg"},
          "aspect_ratio": "match_input_image",
          "output_format": "png",
        },
      }
    
      b, _ := json.Marshal(payload)
      req, _ := http.NewRequest("POST", "https://armox.ai/api/v1/models/run", bytes.NewBuffer(b))
      req.Header.Set("Authorization", "Bearer sk_live_your_key_here")
      req.Header.Set("Content-Type", "application/json")
    
      client := &http.Client{}
      resp, _ := client.Do(req)
      defer resp.Body.Close()
    
      fmt.Println("Status:", resp.StatusCode)
    }

    Common Next Steps

    Security Basics

    • Keep API keys server-side only
    • Rotate keys regularly
    • Use separate keys for dev/staging/production
    • Verify webhook signatures before processing payloads

    Production Notes

    • Persist returned job.id in your database
    • Either poll /jobs/:id or process webhook events
    • Store resulting output URLs for your app UI