Skip to content

FAQ

Fast answers for the failures most likely to appear during setup and early production use.

Why do I get “model not found”?

Verify the active key first. A wrong, revoked, or vendor-issued key can surface as a model-access failure, especially when the client is also pointed at the wrong host.

Check all four values:

  1. The host is https://api.nexoai.ma.
  2. The credential came from NexoAI Dashboard → Keys.
  3. The client is using the OpenAI- or Anthropic-compatible configuration intended for it.
  4. The model ID exactly matches the current catalog, including punctuation.

Model not found = check the key

Do not keep guessing model aliases. Confirm the gateway and key, then copy an exact catalog ID such as gpt-5.4.

Why does API authentication fail?

The common causes are a copied space, a revoked key, the wrong environment-variable name, or a client still targeting a vendor endpoint.

  • Anthropic-compatible clients use ANTHROPIC_AUTH_TOKEN with ANTHROPIC_BASE_URL=https://api.nexoai.ma.
  • OpenAI-compatible clients use OPENAI_API_KEY with OPENAI_BASE_URL=https://api.nexoai.ma.
  • Codex uses https://api.nexoai.ma/v1 inside its model-provider block.

Restart the CLI after changing its file or environment. If necessary, create a tightly capped test key rather than exposing the current key in debug output.

Why can I log into the dashboard but not call the API?

Dashboard login and API authentication are separate. Your account session opens the dashboard; an sk-… virtual key authorizes model requests. Create a key under Keys and pass that value to the client.

The reverse is also true: an API key is not a dashboard password and should never be pasted into a login form.

Why does the CLI keep opening a vendor login?

The tool is probably in its vendor-managed authentication mode. Select its custom API-key or custom-provider mode and enter the NexoAI base. For Codex, make sure model_provider = "nexoai" is active. For Claude Code, make sure the env block is in the settings file that the running user actually reads.

Why am I rate-limited?

Check the key's RPM and TPM separately. Many short requests usually hit RPM; a few large contexts can hit TPM. Also inspect parallel retries, because they often consume the remaining window immediately.

Use bounded exponential backoff with jitter. Raise a cap only after confirming the workload's expected peak and total budget.

Why did requests stop while the wallet still has funds?

The virtual key may have reached its own total budget. A key budget is a hard ceiling and can stop that key before the shared wallet is empty. The key may also have reached RPM or TPM temporarily.

Review the key detail in the dashboard. Raise the relevant limit deliberately or use a different existing key whose purpose matches the workload.

Can I use the same key for OpenAI and Anthropic shapes?

Yes. The issued key and base are the same; only the variable names and API request shape differ. Separate named keys are still useful when you want independent budgets or cleaner per-tool usage.

Is there a subscription?

No. NexoAI is prepaid. New accounts receive $10 in free credit, and you top up the same wallet when needed. Top-ups are paid in MAD through supported local rails.

Can I request a refund?

Do not assume that consumed model usage is reversible. For an unused balance, duplicate payment, failed top-up, or incorrect credit, use the support path in the dashboard and provide the transaction reference, amount, and timestamp. Eligibility and handling depend on the posted Terms and the payment's status; support must review the specific transaction.

Never send your API key to support

Account and transaction identifiers are enough to investigate billing. Revoke the key if it was ever included in a support message.

Where should I start debugging?

Run the curl example with a small, capped key. If curl works, the gateway, key, model, and wallet are healthy; focus next on the CLI or SDK's local configuration.

Built for developers across MENA.