Quickstart
Five minutes from zero to first response. The shape is: sign up, add a card, buy credits, copy your key, swap one URL.
- Create an account and add a payment method
- Buy credits from $10 (Stripe Checkout)
- Grab an API key from the dashboard
- Swap base_url - your existing SDK keeps working
Step 1: Sign up and add a payment method
Create your account at app.aivory.net/register. New accounts start in inactive state and cannot send requests until a card is on file, so add one before you try to call the API.
Step 2: Buy credits
The minimum top-up is $10. Open the Credits page in the dashboard, pick an amount, and finish Stripe Checkout. Your balance is updated once payment completes.
You can also enable auto-recharge. When your balance drops below half of your chosen recharge amount, we charge your card for another top-up. Turn this off at any time.
Step 3: Create an API key
Open API keys in the dashboard, click New key, give it a name, and copy the si_... string. Treat it like a password. You can revoke it from the same page.
Step 4: Send your first request
The base URL is https://smart.aivory.net/v1. Pick the language you already use.
curl
curl https://smart.aivory.net/v1/chat/completions \
-H "Authorization: Bearer $AIVORY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "llama-3.3-70b",
"messages": [{"role": "user", "content": "Say hi."}]
}'
Python (OpenAI SDK)
from openai import OpenAI
client = OpenAI(
base_url="https://smart.aivory.net/v1",
api_key="si_...",
)
resp = client.chat.completions.create(
model="llama-3.3-70b",
messages=[{"role": "user", "content": "Say hi."}],
)
print(resp.choices[0].message.content)
TypeScript (openai npm package)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://smart.aivory.net/v1",
apiKey: process.env.AIVORY_API_KEY,
});
const resp = await client.chat.completions.create({
model: "llama-3.3-70b",
messages: [{ role: "user", content: "Say hi." }],
});
console.log(resp.choices[0].message.content);
Step 5: Read the receipt
Every response carries a set of X-SI-* headers. They tell you what the router did with your request.
See Response headers for the full list.
Streaming
Set "stream": true and you get Server-Sent Events in the OpenAI format. The final chunk includes usage with real token counts, and the stream ends with data: [DONE]. The OpenAI SDK handles all of this for you; pass stream=True and iterate.