Set up your team with API keys, per-key budgets, usage analytics, and Law 18-07 compliance.
OpenDunes is designed for teams that need multiple isolated API keys, spend controls, and a compliance posture that satisfies Algerian data-protection law (Law 18-07). This page walks through the full setup from first deposit to production-ready keys.
default API key is created automatically and visible in Dashboard → Keys.Isolate workloads by creating one key per service, environment, or team member. That way a compromised key can be rotated without disrupting everything else.
Each key:
sk- followed by a hex string. It's shown only once — copy it before closing the dialog.Create keys from Dashboard → Keys, or provision them programmatically with the Management API. Management calls use a separate mk-… management key — created in Dashboard → Settings → Management Keys — never a regular sk- key:
A 201 response returns the key record plus raw_key — the sk-… value is shown once, so store it immediately:
List existing keys with GET /v1/management/keys (returns {"data": [...]}) and revoke one with DELETE /v1/management/keys/{id}. There is no update operation — to rotate a key, create the replacement, move traffic over, then delete the old one. Rate limits and model allow-lists are set per key from Dashboard → Keys.
Limits prevent any single key from monopolizing the shared balance. When a key exceeds its rate limit, requests return 429 rate_limit_exceeded — other keys keep working. Spend itself is drawn from the shared account balance: when the balance runs out, requests return 402 insufficient_credits.
You can update a key's rate limit and model allow-list at any time from Dashboard → Keys via Edit Limits.
Every request is logged with model, token counts, DA cost, and a UUID-v7 trace ID (X-Request-Id response header). View the breakdown by key, model, and time range in Dashboard → Analytics.
Programmatic access is live: GET /v1/activity returns daily usage rollups and GET /v1/credits returns your balance — both authenticated with your regular Bearer sk- key. The X-Balance-Available header on every response also gives you real-time balance visibility in micro-DA:
Algeria's Law 18-07 on personal data protection applies to any system that processes user PII. OpenDunes addresses this at the infrastructure level so you don't have to build your own redaction pipeline.
What OpenDunes does for you:
[NAME]) in logs.Note. Your application is still responsible for what you send in
messages. Do not send raw user-submitted PII (e.g., full national ID scans, medical records) in prompt text unless your use case specifically requires it and you have documented consent under Law 18-07.
The default is 60 requests/minute per key. Enterprise accounts can request higher limits by contacting support. When a key is rate-limited, the response is:
Honor the Retry-After header (also X-RateLimit-Reset) and implement exponential backoff for production systems.
| Key name | Purpose | Budget |
|---|---|---|
production-api | Live product traffic | High or uncapped |
staging-api | Pre-prod testing | Moderate (e.g., 200 DA) |
dev-{name} | Per-developer local work | Low (e.g., 50 DA) |
ci-pipeline | Automated tests | Low, reset monthly |
Rotate keys on a schedule (quarterly is a common baseline) and immediately on any suspected leak.