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?
- Authentication — keys, headers, multi-key setup
- Endpoints reference — all routes
- Quality floor — control how aggressive routing is
- Cost budget — set per-request spending caps