AI From U AI FROM U.COM

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

  1. Choose a plan — Buy a plan and open the dashboard; your API key is issued there and shown once.
  2. Point at the base URL — Set the base URL in your client to this deployment and send the key as a bearer token.
  3. 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

MODELBEST FOR
lunaFast drafts, classification, summaries and high-volume chat.
terraEveryday assistant work — RAG, agents, tools and coding.
solDeep reasoning, hard coding, Codex-style tasks and research.

The three models

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

MODELINPUTCACHE READCACHE WRITEOUTPUT + REASONING
luna10.551.256
terra105.512.560
sol2513.7531.25150

Long context

MODELINPUTCACHE READCACHE WRITEOUTPUT + REASONING
luna21.12.59
terra20112590
sol5027.562.5225

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.