Quick start
An OpenAI-compatible endpoint. Point an existing program at the base URL below, change the key, and nothing else has to move.
Base URL and authentication
https://aifromu.com/v1
Send your key as a bearer token in the Authorization header. A key is shown once when it is issued; rotate a lost one from the dashboard.
Your first request
- Choose a plan — Buy a plan and open the dashboard; your API key is issued there and shown once.
- Point at the base URL — Set the base URL in your client to this deployment and send the key as a bearer token.
- Call a model — Name luna, terra or sol as the model and send the request you already send.
curl https://aifromu.com/v1/models \ -H "Authorization: Bearer $AI_FROM_U_API_KEY"
from openai import OpenAI
client = OpenAI(
base_url="https://aifromu.com/v1",
api_key="YOUR_AI_FROM_U_API_KEY",
)
response = client.chat.completions.create(
model="terra",
messages=[
{"role": "user", "content": "Hello from AI From U"}
],
)
print(response.choices[0].message.content)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://aifromu.com/v1",
apiKey: process.env.AI_FROM_U_API_KEY,
});
const response = await client.chat.completions.create({
model: "terra",
messages: [{ role: "user", content: "Hello from AI From U" }],
});
console.log(response.choices[0].message.content);
Model aliases
| MODEL | BEST FOR |
|---|---|
| luna | Fast drafts, classification, summaries and high-volume chat. |
| terra | Everyday assistant work — RAG, agents, tools and coding. |
| sol | Deep reasoning, hard coding, Codex-style tasks and research. |
How credits are counted
Each token is multiplied by the weight of the model it was spent on. A cache read costs less than fresh input; a cache write costs more.
Short context
| MODEL | INPUT | CACHE READ | CACHE WRITE | OUTPUT + REASONING |
|---|---|---|---|---|
| luna | 1 | 0.55 | 1.25 | 6 |
| terra | 10 | 5.5 | 12.5 | 60 |
| sol | 25 | 13.75 | 31.25 | 150 |
Long context
| MODEL | INPUT | CACHE READ | CACHE WRITE | OUTPUT + REASONING |
|---|---|---|---|---|
| luna | 2 | 1.1 | 2.5 | 9 |
| terra | 20 | 11 | 25 | 90 |
| sol | 50 | 27.5 | 62.5 | 225 |
A request with more than 272,000 input tokens converts at the long-context rate. Plans and pricing
Errors and limits
A request past your remaining credits is refused with 429 and nothing is charged. A key that has expired or been rotated answers 401.
Long generations should set stream: true — a non-streaming request running longer than about 100 seconds is cut by the edge before it returns.