Luxoret API

Access 20+ AI models from OpenAI, Anthropic, Google, Meta, and more — through a single API key.

Quick Start

1

Get API Key

Find your key in Dashboard

2

Make Request

Send POST with Bearer token

3

Get Response

JSON or streaming SSE

# Quick test — replace YOUR_API_KEY with your key from Dashboard
curl -X POST https://luxoret.com/api/v1/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"message": "Hello!", "model": "anthropic/claude-haiku-4.5"}'

Authentication

All requests require a Bearer token in the Authorization header:

Authorization: Bearer YOUR_API_KEY

Your API key is available in your Dashboard. Keep it secret — treat it like a password.

Endpoints

POST /api/v1/chat

Send a message and get a complete JSON response.

Request Body

ParameterTypeRequiredDescription
messagestringYesThe message to send
modelstringNoModel ID (default: claude-haiku-4.5)
contextarrayNoPrevious messages for conversation context
system_promptstringNoCustom system instructions

Response

{
  "success": true,
  "message": "Hello! How can I help you today?",
  "model": "anthropic/claude-haiku-4.5",
  "usage": {
    "prompt_tokens": 12,
    "completion_tokens": 8
  }
}
POST /api/v1/chat-stream

Stream a response in real-time via Server-Sent Events (SSE). Same request body as /chat.

SSE Events

// Streaming chunks
data: {"chunk": "Hello"}
data: {"chunk": " world"}
data: {"chunk": "!"}

// Completion
data: {"done": true, "model": "anthropic/claude-haiku-4.5"}
GET /api/v1/tools

Search and list AI tools. No auth required.

Params: q (search), category, pricing, page, per_page

GET /api/v1/categories

Get all tool categories with tool counts. No auth required.

Code Examples

# Simple chat request
curl -X POST https://luxoret.com/api/v1/chat \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "message": "Explain quantum computing in simple terms",
    "model": "anthropic/claude-sonnet-4.6"
  }'
import requests

response = requests.post(
    "https://luxoret.com/api/v1/chat",
    headers={
        "Authorization": "Bearer YOUR_API_KEY",
        "Content-Type": "application/json",
    },
    json={
        "message": "Explain quantum computing in simple terms",
        "model": "anthropic/claude-sonnet-4.6",
    },
)

data = response.json()
print(data["message"])
const response = await fetch("https://luxoret.com/api/v1/chat", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    message: "Explain quantum computing in simple terms",
    model: "anthropic/claude-sonnet-4.6",
  }),
});

const data = await response.json();
console.log(data.message);

Streaming (JavaScript)

const response = await fetch("https://luxoret.com/api/v1/chat-stream", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    message: "Write a short poem",
    model: "anthropic/claude-haiku-4.5",
  }),
});

const reader = response.body.getReader();
const decoder = new TextDecoder();

while (true) {
  const { done, value } = await reader.read();
  if (done) break;

  const lines = decoder.decode(value).split("\n");
  for (const line of lines) {
    if (line.startsWith("data: ")) {
      const data = JSON.parse(line.slice(6));
      if (data.chunk) process.stdout.write(data.chunk);
      if (data.done) console.log("\n[Done]");
    }
  }
}

Models & Pricing

Each request costs points based on the model used. Your point balance is shown in your Dashboard.

Free Tier Models

Model IDNamePoints
anthropic/claude-haiku-4.5Claude 4.5 Haiku10
deepseek/deepseek-chatDeepSeek V35
meta-llama/llama-3.1-8b-instructLlama 3.1 8B5
mistralai/mistral-7b-instructMistral 7B5

Standard Models

Model IDNamePoints
anthropic/claude-sonnet-4.5Claude 4.5 Sonnet50
openai/gpt-4o-miniGPT-4o Mini15
openai/gpt-4.1-miniGPT-4.1 Mini15
google/gemini-2.5-flashGemini 2.5 Flash10
perplexity/sonarPerplexity Sonar25

Premium Models

Model IDNamePoints
anthropic/claude-sonnet-4.6Claude 4.6 Sonnet60
anthropic/claude-opus-4.5Claude 4.5 Opus150
openai/gpt-4oGPT-4o60
openai/gpt-4.1GPT-4.170
google/gemini-2.5-proGemini 2.5 Pro50
perplexity/sonar-proPerplexity Sonar Pro50
openai/o3-miniO3 Mini (Reasoning)100
openai/o4-miniO4 Mini (Reasoning)120
deepseek/deepseek-r1DeepSeek R1 (Reasoning)60
meta-llama/llama-4-maverickLlama 4 Maverick30

Rate Limits & Errors

Rate Limits

  • 20 requests per minute per API key
  • Point cost deducted per request based on model

Error Codes

HTTP CodeCodeMeaning
401AUTH_REQUIREDMissing or invalid API key
403ACCESS_DENIEDModel not available on your plan
403INSUFFICIENT_POINTSNot enough points
429RATE_LIMITEDToo many requests