Setup
Four steps to your first call
If your code already speaks to the OpenAI chat API, the only change is the base URL and the key.
- Create an accountYour email address is all that is needed.
- Redeem your codeThis issues an API key and sets how many tokens it may spend.
- Copy the keyIt appears in your dashboard straight away.
- Point your client hereSwap the base URL, keep everything else.
https://rootsys.cloud/v1Examples
Ready to run once you swap in your key.
curl
curl https://rootsys.cloud/v1/chat/completions \
-H "Authorization: Bearer $ROOTSYS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4.1-flash",
"messages": [{"role": "user", "content": "Hello"}]
}'python
from openai import OpenAI
client = OpenAI(
base_url="https://rootsys.cloud/v1",
api_key="YOUR_API_KEY",
)
reply = client.chat.completions.create(
model="deepseek-v4.1-flash",
messages=[{"role": "user", "content": "Hello"}],
)
print(reply.choices[0].message.content)node
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://rootsys.cloud/v1",
apiKey: process.env.ROOTSYS_API_KEY,
});
const reply = await client.chat.completions.create({
model: "deepseek-v4.1-flash",
messages: [{ role: "user", content: "Hello" }],
});
console.log(reply.choices[0].message.content);Worth knowing
- Streaming works
- Set stream: true and tokens arrive as they are generated, in the same SSE format the OpenAI SDKs expect.
- Listing models
- GET /models with your key returns the same catalogue the Models page shows.
- Token allowance
- Each request draws from the allowance on your key. When it runs out, calls are refused until the allowance is topped up.
- Rejected model names
- Only IDs from the catalogue are accepted. A name that is not mapped comes back as an error rather than being silently swapped.