Common questions about billing, models, API behavior, and what's coming next.
Answers to the most common questions from developers building on OpenDunes.
No. OpenDunes does not accept international cards. You deposit Algerian Dinars via SATIM — either a CIB bank card or an Edahabia card. No USD, no Visa, no foreign payment processor required.
Go to Dashboard → API Keys. A default key is created automatically when your account is activated. You can create multiple keys and delete them individually. A key is shown once at creation — store it securely; only a hash is kept on our side.
https://opendunes.com/api/v1 — point any OpenAI-compatible SDK at this URL with your OpenDunes key.
You pre-fund your account in Algerian Dinars (DA). Each API request deducts from your balance based on the number of input and output tokens the model processed. There is no monthly subscription — you pay only for what you use.
Micro-DA are the internal unit of account. 1 DA = 1,000,000 micro-DA. All balances and per-request costs are computed as bigint micro-DA — no floating-point arithmetic, no rounding errors. When you see a balance in the dashboard or in the X-Balance-Available response header, it is expressed in micro-DA.
None. Your deposit is credited 1:1 — deposit 1,000 DA and your balance goes up by exactly 1,000 DA. There is no deposit fee and no per-request surcharge; you are billed only the DA price shown in the catalog as you use the API.
(input_tokens × input_rate) + (output_tokens × output_rate), rounded up to the nearest micro-DA (minimum 1 micro-DA). Rates are expressed as DA per million tokens.
Yes. Some models in the catalog are offered at zero cost. Filter the catalog with ?free=true or toggle "Free only" in the model browser.
Over 200 models across providers — including Anthropic, OpenAI, Google, Meta, Mistral, and many others. Browse the full list at /models or query GET /api/models.
Use the provider/model slug format, for example anthropic/claude-opus-4.8, openai/gpt-5.4, or google/gemini-2.5-pro. The full list of slugs is in the catalog.
Any model with the vision capability. Pass image content as an array of parts in messages[].content — the same format the OpenAI SDK uses. Check the catalog capability=vision filter.
Yes. One API key, one base URL, any model in the catalog.
model (required), messages (required), stream, max_tokens, max_completion_tokens, temperature (0–2), top_p (0–1), tools, tool_choice, parallel_tool_calls, response_format, modalities, reasoning (object), reasoning_effort, stop (up to 4), seed, top_k, frequency_penalty, presence_penalty, repetition_penalty, min_p, top_a, logprobs, top_logprobs, logit_bias, models (fallback list, up to 4), and the provider routing object (only, order, allow_fallbacks, sort). Message roles: system, user, assistant, tool. The content field accepts a plain string or an array of content parts for multi-modal inputs.
Yes. Send tools and tool_choice in the request body; the model returns tool_calls for your client to execute, and you post results back as tool role messages — the standard OpenAI-compatible round trip. See Tool & Function Calling.
Yes. response_format: { "type": "json_object" } and JSON-schema-constrained outputs are supported on models with the capability. See Structured Outputs.
Yes — POST /v1/embeddings, billed in DA like every other request. Filter the catalog with capability=embedding for supported models.
All errors follow this flat shape — error (machine code), message (human text), and an optional retry_after (seconds) on 429 and 503 responses.
The default is 60 requests per minute per API key. Exceeding the limit returns HTTP 429 with a Retry-After header. Per-key limits can be configured in the dashboard.
OpenDunes operates under Algeria Law 18-07 on personal data protection. A PII redaction pipeline scrubs personally identifiable information from request and response logs before they are persisted. Metadata (token counts, model slug, latency, cost) is retained for billing and audit purposes.
OpenDunes is built for Algerian data residency. Requests are routed and processed within the service's infrastructure. Upstream model inference happens via the underlying provider network — provider terms apply to inference compute only; we do not forward raw user data beyond what is required for the model call.
Your current balance is returned on every API response in the X-Balance-Available header (in micro-DA). You can also check your balance and transaction history in Dashboard → Billing.
Requests return HTTP 402 with "error": "insufficient_credits". Top up your balance via SATIM from Dashboard → Billing to resume.
Refer to the refund policy in your dashboard. Credits are generally non-refundable except in cases of verified service errors.
Yes — create as many keys as you need. Common practice is one key per application or environment (dev/staging/prod). Each key can have its own rate limit and label.
Contact support from your dashboard. Account deletion triggers a data-erasure workflow in accordance with Law 18-07.
All of the following are available today:
tools + tool_choice, standard OpenAI-compatible round tripresponse_format on capable modelsmodels array (up to 4 slugs) retries the next model on upstream failurePOST /v1/embeddingsreasoning object (or the reasoning_effort scalar alias) on reasoning modelsPOST /v1/images/generations, /v1/videos, /v1/audio/speechPOST /v1/audio/speech and /v1/audio/transcriptionsNot yet available (tracked): prompt caching.