Lumen API documentation

Quickstart

Lumen API is OpenAI-compatible. You change one base URL and one key — Lumen handles routing, cost optimization, and failover.

1. Get a key

Sign up at /signup — free tier is 100 requests/day, no credit card.

2. Make your first call

Python (openai-python)

from openai import OpenAI

client = OpenAI(
    base_url="https://lumen-api.eliteaiempire.com/v1",
    api_key="lumen_sk_..."
)

resp = client.chat.completions.create(
    model="auto",  # let Lumen pick
    messages=[{"role": "user", "content": "Summarize the French Revolution in 3 sentences."}]
)

print(resp.choices[0].message.content)
# How Lumen routed:
print(resp.lumen)
# -> {"tier":"small","model":"gpt-4o-mini","cost_per_1k":0.003,"audit_hash":"abc123..."}

Node (openai-node)

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://lumen-api.eliteaiempire.com/v1",
  apiKey: process.env.LUMEN_API_KEY,
});

const resp = await client.chat.completions.create({
  model: "auto",
  messages: [{ role: "user", content: "Hello" }],
});
console.log(resp.choices[0].message.content);
console.log(resp.lumen);

cURL

curl https://lumen-api.eliteaiempire.com/v1/chat/completions \
  -H "Authorization: Bearer lumen_sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "auto",
    "messages": [{"role":"user","content":"Hello"}]
  }'

Go

package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    body, _ := json.Marshal(map[string]interface{}{
        "model": "auto",
        "messages": []map[string]string{{"role":"user","content":"Hello"}},
    })
    req, _ := http.NewRequest("POST",
        "https://lumen-api.eliteaiempire.com/v1/chat/completions",
        bytes.NewReader(body))
    req.Header.Set("Authorization", "Bearer lumen_sk_...")
    req.Header.Set("Content-Type", "application/json")
    resp, _ := http.DefaultClient.Do(req)
    defer resp.Body.Close()
    var out map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&out)
    fmt.Println(out)
}

Rust (reqwest)

use reqwest::Client;
use serde_json::json;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = Client::new();
    let resp = client
        .post("https://lumen-api.eliteaiempire.com/v1/chat/completions")
        .bearer_auth(std::env::var("LUMEN_API_KEY")?)
        .json(&json!({
            "model": "auto",
            "messages": [{"role":"user","content":"Hello"}]
        }))
        .send().await?
        .json::<serde_json::Value>().await?;
    println!("{}", resp);
    Ok(())
}

3. Read the response

Every response includes a lumen object showing which tier answered, the cost-per-1k for that tier, and a cryptographic audit hash you can verify any time at /v1/audit/{hash}.

What's next?