Documentation

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.

AI API — Base URL
This is the value you set as base_url in the OpenAI SDK (or any compatible client). Both and resolve.

1. Get a key

  1. Choose a plan on the pricing page.
  2. Request access on the support page, naming your plan.
  3. AuCore issues your key and sends it to you.
  4. 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 doesChat completions, embeddings, moderations, media generation — the OpenAI-compatible inference surface580+ utility endpoints: Islamic tools, web scraping, anime, finance, crypto, QR codes, weather, security, and more
Key prefixauc_live_… / auc_premier_… / auc_platinum_… / auc_free_…auc_rest_…
Base URL (same origin — this page's domain)https://api.fallsad.biz.id/api
AuthBearer token in Authorization header?key=… query param, x-api-key header, or Bearer
QuotaRPM + daily requests by plan (Free → Platinum)5 calls/day free (admin-adjustable per key)
Key sourceIssued by AuCore after plan purchase, or Google sign-in (free)Issued from the admin dashboard (API keys tab)
Use it forChatbots, RAG, agents, code generation, summarization, image/video generationUtility 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
StatusMeaning
401Key missing or unknown
403Key revoked or expired, or model above your plan
429Rate 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

FieldTypeNotes
modelstringRequired. Any ID from the catalog.
messagesarrayRequired. Roles: system, user, assistant.
temperaturenumber0–2. Default 1.
max_tokensintegerCapped at 32,000.
top_pnumberNucleus sampling.
streambooleanServer-sent events when true.
toolsarrayPremier 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 the aucore.tokens_minimized field.

10. Rate limits

PlanPer minutePer dayContextWeight
Basic201,50064K
Premier606,000200K
Platinum18025,0001M

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_tokens deliberately; it is the simplest cost control you have.
  • Use aucore-router-auto when quality requirements vary per request.
  • Log the id from 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:

Download the SDK
Single file, ~8 KB, zero dependencies
Download .mjs

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.