Getting started
AuCore exposes one OpenAI-compatible API for every model in the catalog. If your code already talks to OpenAI, you only need to change two values.
base_url in the OpenAI SDK (or any
compatible client). Both and resolve.1. Get a key
- Choose a plan on the pricing page.
- Request access on the support page, naming your plan.
- AuCore issues your key and sends it to you.
- Redeem it at /login. Your dashboard then shows the key, base URL and analytics.
Keys look like auc_live_a1b2c3d4e5f6g7h8. They are account-scoped, rotatable and revocable at any time.
2. Two APIs — which one do I use?
AuCore runs two independent API planes, each with its own key type, base URL and quota system. Pick the one that matches what you're building:
| 🤖 AI API (this page) | 🧰 REST API Toolkit (catalog) | |
|---|---|---|
| What it does | Chat completions, embeddings, moderations, media generation — the OpenAI-compatible inference surface | 580+ utility endpoints: Islamic tools, web scraping, anime, finance, crypto, QR codes, weather, security, and more |
| Key prefix | auc_live_… / auc_premier_… / auc_platinum_… / auc_free_… | auc_rest_… |
| Base URL | (same origin — this page's domain) | https://api.fallsad.biz.id/api |
| Auth | Bearer token in Authorization header | ?key=… query param, x-api-key header, or Bearer |
| Quota | RPM + daily requests by plan (Free → Platinum) | 5 calls/day free (admin-adjustable per key) |
| Key source | Issued by AuCore after plan purchase, or Google sign-in (free) | Issued from the admin dashboard (API keys tab) |
| Use it for | Chatbots, RAG, agents, code generation, summarization, image/video generation | Utility microservices: prayer times, weather, currency, QR, short links, anime search… |
Rule of thumb: if you're calling a model (GPT, Claude, Gemini, Llama…), use the AI API with your auc_live_ key. If you're calling a utility endpoint (weather, QR, prayer times…), use the REST API Toolkit with your auc_rest_ key. They never mix — a auc_rest_ key cannot call chat completions, and a auc_live_ key cannot call toolkit features.
3. Authenticate
Send your key as a bearer token on every request.
Authorization: Bearer auc_live_a1b2c3d4e5f6g7h8 Content-Type: application/json
| Status | Meaning |
|---|---|
401 | Key missing or unknown |
403 | Key revoked or expired, or model above your plan |
429 | Rate or daily budget exceeded |
4. List models
curl /models \ -H "Authorization: Bearer $AUCORE_KEY"
{
"object": "list",
"data": [
{
"id": "aucore-router-auto",
"owned_by": "Anthropic",
"context_window": 1000000,
"modalities": ["text", "vision", "tools"],
"min_plan": "premier",
"available": true
}
]
}
available reflects your own plan, so you can filter the catalog client-side.
5. Chat completions
curl /chat/completions \
-H "Authorization: Bearer $AUCORE_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "aucore-router-auto",
"messages": [
{"role": "system", "content": "You are concise."},
{"role": "user", "content": "What is retrieval augmented generation?"}
],
"temperature": 0.7,
"max_tokens": 1024
}'
Response
{
"id": "chatcmpl_aucore_8f2a…",
"object": "chat.completion",
"model": "aucore-router-auto",
"choices": [{
"index": 0,
"message": {"role": "assistant", "content": "RAG is…"},
"finish_reason": "stop"
}],
"usage": {"prompt_tokens": 24, "completion_tokens": 148, "total_tokens": 172}
}
Parameters
| Field | Type | Notes |
|---|---|---|
model | string | Required. Any ID from the catalog. |
messages | array | Required. Roles: system, user, assistant. |
temperature | number | 0–2. Default 1. |
max_tokens | integer | Capped at 32,000. |
top_p | number | Nucleus sampling. |
stream | boolean | Server-sent events when true. |
tools | array | Premier and Platinum only. |
6. Streaming
Set "stream": true and read server-sent events. Each chunk is a data: line, ending with data: [DONE].
data: {"choices":[{"delta":{"content":"RAG"}}]}
data: {"choices":[{"delta":{"content":" combines"}}]}
data: [DONE]
// Node.js — stream with the OpenAI SDK const stream = await client.chat.completions.create({ model: "aucore-router-auto", messages: [{ role: "user", content: "Write a haiku" }], stream: true, }); for await (const chunk of stream) { process.stdout.write(chunk.choices[0]?.delta?.content ?? ""); }
7. Automatic model selection
Send aucore-router-auto as the model and AuCore chooses the cheapest model capable of handling the prompt: short prompts go to a fast small model, code-heavy or long prompts escalate automatically.
{
"model": "aucore-router-auto",
"messages": [{"role": "user", "content": "Summarise this in one line: …"}]
}
8. Use an existing SDK
# Python from openai import OpenAI client = OpenAI(base_url=, api_key=os.environ["AUCORE_KEY"]) r = client.chat.completions.create( model="aucore-router-auto", messages=[{"role": "user", "content": "Hello"}], ) print(r.choices[0].message.content)
LangChain, LlamaIndex, the AI SDK and anything else that accepts a custom base URL work the same way. /v1 is accepted as an alias, so …/api/v1 and …/api both resolve.
9. Token optimization
Every request passes through the AuCore token minimizer before it reaches a model provider. Whitespace is normalized, oversized histories are windowed to fit your plan's context budget, and bloated tool results are capped — typically saving 15–40% of input tokens on long conversations, which makes free-tier quotas last dramatically longer.
- Automatic by default; nothing to configure.
- Add
"optimize": "aggressive"to the request body for deeper compression (strips filler phrases). - Check the savings in every response: headers
X-AuCore-Tokens-In/X-AuCore-Tokens-Saved, or theaucore.tokens_minimizedfield.
10. Rate limits
| Plan | Per minute | Per day | Context | Weight |
|---|---|---|---|---|
| Basic | 20 | 1,500 | 64K | 1× |
| Premier | 60 | 6,000 | 200K | 3× |
| Platinum | 180 | 25,000 | 1M | 9× |
Every response includes limit headers:
X-AuCore-Plan: platinum X-RateLimit-Limit: 180 X-RateLimit-Remaining: 174 X-RateLimit-Reset: 1786000060 X-RateLimit-Daily-Remaining: 24985
11. Errors
{
"error": {
"type": "rate_limit_exceeded",
"message": "Daily request budget reached for plan basic.",
"code": 429,
"retry_after": 41,
"reset_at": "2026-08-17T00:00:00.000Z"
}
}
Retry 429 and 502 with exponential backoff plus jitter. Never retry 400 or 403 without changing the request.
12. Account management & support
Beyond chat, the gateway exposes account endpoints for everything the dashboard does — all with the same Bearer key.
Profile & usage
PATCH /account/profile # update your name / email GET /account/history?days=30 # daily request series (max 90 days) GET /account/requests?limit=50 # recent request log (metadata only)
Secondary keys
Mint up to five named keys for separate projects. They authenticate as your account with the same plan limits and can be revoked independently — no need to share the master key.
POST /account/keys # { "name": "chatbot-prod" } → key shown once GET /account/keys # list every secondary key DELETE /account/keys/:id # revoke one key instantly
Webhooks
Register up to three HTTPS endpoints and AuCore POSTs events to them: usage.daily, quota.warn (≥80% of the daily budget) and key.rotate.
POST /account/webhooks # { "url": "https://your.app/hook", "events": ["usage.daily"] } GET /account/webhooks # list registered webhooks DELETE /account/webhooks/:id
Support & subscribe
POST /support # { name, email, topic, message, consent: true } POST /subscribe # { email } → product updates by email
Support requests require consent: true (the checkbox on the support form) and a valid email — replies are sent there by our email plane. Subscribers receive feature updates and promos; unsubscribe by contacting support.
13. Good practice
- Keep keys on your server; have your own backend call AuCore.
- Rotate immediately if a key may have leaked — old keys stop working at once.
- Set
max_tokensdeliberately; it is the simplest cost control you have. - Use
aucore-router-autowhen quality requirements vary per request. - Log the
idfrom responses so support can trace a specific call.
14. Official SDK
The AuCore SDK is a zero-dependency JavaScript client that works everywhere — Node.js 18+, browsers, Deno, Bun, and edge runtimes. No npm install needed — download it directly:
Quick start
// Node.js / Deno / Bun / edge — import the downloaded file import AuCore from "./aucore-sdk.mjs"; const ai = new AuCore({ apiKey: "auc_live_…" }); // Chat completion const res = await ai.chat.create({ model: "aucore-router-auto", messages: [{ role: "user", content: "Hello!" }] }); console.log(res.choices[0].message.content); // Streaming const stream = await ai.chat.create({ messages: […], stream: true }); for await (const chunk of stream) { process.stdout.write(chunk.choices[0]?.delta?.content ?? ""); } // REST toolkit (separate key) const rest = new AuCore({ restKey: "auc_rest_…" }); const weather = await rest.rest.call("info/weather", { city: "Jakarta" });
Browser usage (no build step)
In a browser, add a type="module" script tag that imports the SDK from this site's CDN at
/assets/sdk/aucore-sdk.mjs, then instantiate new AuCore({ apiKey: "auc_live_…" })
and call ai.chat.create() — the same API as the Node.js example above.
How it works: the SDK is a single ES module that wraps the same REST API you'd call with fetch. It adds automatic retry on 429/5xx, request timeouts, typed errors, and a clean API surface (ai.chat.create(), ai.rest.call()). Since it's zero-dependency, you can copy the file into any project — no package manager needed. If you prefer npm, run npm publish from the sdk/ folder after setting up an npm account.
15. REST API Toolkit — quick reference
The toolkit is a separate plane with its own base URL and key. Full interactive catalog at /restapi.
# call any toolkit feature with your auc_rest_ key curl "https://api.fallsad.biz.id/api/islamic/prayer-times?lat=-6.2&lon=106.8&key=auc_rest_…" curl "https://api.fallsad.biz.id/api/info/weather?city=Jakarta&key=auc_rest_…" curl "https://api.fallsad.biz.id/api/tools/qr-code?text=hello&key=auc_rest_…"
Every response carries rate-limit headers (X-RateLimit-Limit, -Remaining, -Reset) so you can track your quota client-side. Check GET /me for a full usage report.
Need something not covered here? See the full API reference, the FAQ, or contact support.