Luxoret API
Access 20+ AI models from OpenAI, Anthropic, Google, Meta, and more — through a single API key.
Quick Start
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
| Parameter | Type | Required | Description |
|---|---|---|---|
message | string | Yes | The message to send |
model | string | No | Model ID (default: claude-haiku-4.5) |
context | array | No | Previous messages for conversation context |
system_prompt | string | No | Custom 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 ID | Name | Points |
|---|---|---|
anthropic/claude-haiku-4.5 | Claude 4.5 Haiku | 10 |
deepseek/deepseek-chat | DeepSeek V3 | 5 |
meta-llama/llama-3.1-8b-instruct | Llama 3.1 8B | 5 |
mistralai/mistral-7b-instruct | Mistral 7B | 5 |
Standard Models
| Model ID | Name | Points |
|---|---|---|
anthropic/claude-sonnet-4.5 | Claude 4.5 Sonnet | 50 |
openai/gpt-4o-mini | GPT-4o Mini | 15 |
openai/gpt-4.1-mini | GPT-4.1 Mini | 15 |
google/gemini-2.5-flash | Gemini 2.5 Flash | 10 |
perplexity/sonar | Perplexity Sonar | 25 |
Premium Models
| Model ID | Name | Points |
|---|---|---|
anthropic/claude-sonnet-4.6 | Claude 4.6 Sonnet | 60 |
anthropic/claude-opus-4.5 | Claude 4.5 Opus | 150 |
openai/gpt-4o | GPT-4o | 60 |
openai/gpt-4.1 | GPT-4.1 | 70 |
google/gemini-2.5-pro | Gemini 2.5 Pro | 50 |
perplexity/sonar-pro | Perplexity Sonar Pro | 50 |
openai/o3-mini | O3 Mini (Reasoning) | 100 |
openai/o4-mini | O4 Mini (Reasoning) | 120 |
deepseek/deepseek-r1 | DeepSeek R1 (Reasoning) | 60 |
meta-llama/llama-4-maverick | Llama 4 Maverick | 30 |
Rate Limits & Errors
Rate Limits
- 20 requests per minute per API key
- Point cost deducted per request based on model
Error Codes
| HTTP Code | Code | Meaning |
|---|---|---|
| 401 | AUTH_REQUIRED | Missing or invalid API key |
| 403 | ACCESS_DENIED | Model not available on your plan |
| 403 | INSUFFICIENT_POINTS | Not enough points |
| 429 | RATE_LIMITED | Too many requests |