> ## Documentation Index
> Fetch the complete documentation index at: https://docs.platform.nora.my/llms.txt
> Use this file to discover all available pages before exploring further.

# Providers

> Manage LLM provider API keys — OpenAI, Anthropic, Google, and more.

Agents run against models from external providers (OpenAI, Anthropic, Google) plus Nora-managed model tiers. Each provider that agents call needs an API key at the workspace level.

## Where keys live

* **Workspace-scoped** — keys are per workspace, not per user.
* **Encrypted at rest** — never returned via UI or API. The app can't read your key back.
* **Per-workspace usage attribution** — keeping keys per workspace makes cost attribution clean on the provider dashboard.

## Adding a key

**Settings → Models → Providers → Add key**:

1. Pick the provider (OpenAI, Anthropic, Google, ...).
2. Paste the key. Input is masked.
3. Save.

Or via CLI:

```bash theme={null}
nora providers set openai --stdin <<< "$OPENAI_API_KEY"
```

See [`nora providers`](/cli/providers) for CLI details.

## Which providers Nora supports

* **OpenAI** — GPT models.
* **Anthropic** — Claude models.
* **Google** — Gemini models.
* **Nora managed** — Nora-hosted models (no external key required; billed by Nora).

More providers ship regularly. The providers list in the app shows the current set.

## Rotating a key

Re-add the key with a new value. Old key is replaced atomically:

* New runs use the new key immediately.
* In-flight runs finish on the old key (up to a minute for the network to settle).

Verify by watching for auth failures over the next few minutes:

```bash theme={null}
nora traces list --status error --search "authentication" --limit 10
```

## Deleting a key

Removes the key. Any Agent using that provider will fail on next run until you set a new key.

## Provider readiness check

Before publishing a Flow, verify all its models have provider keys:

```bash theme={null}
nora providers check support-agent
```

Prints a table:

```
Flow: support-agent
  openai:    ✓ configured  (used by 3 Agents)
  anthropic: ✗ MISSING     (used by 1 Agent — ag_secondary)
```

CI can gate publishes on this check.

## Provider vs. Nora-managed models

* **Provider keys** — you pay the provider directly, on their meter.
* **Nora-managed** — Nora hosts the model, bills you on Nora's invoice. Simpler billing; sometimes cheaper.

Choose per Agent block via **`--set-model`** (see [`nora agents`](/cli/agents)). Mix freely — one Flow can use provider models and managed models in the same run.

## Rate limits and quotas

Provider rate limits apply. If your Agents get 429s under load:

* Bump your provider tier (OpenAI's Tier 4, Anthropic's Enterprise, etc.).
* Add a fallback model per Agent (see [`nora agents update --set-model`](/cli/agents)) — the Agent transparently switches on failure.
* Route by intent — cheap intents to cheap models, hard intents to premium models.

Nora doesn't add its own rate limits on top of the provider's.

## Cost dashboards

Provider costs show on the provider's own dashboard (OpenAI, Anthropic, Google). Nora's billing surface covers Nora's platform costs; see [Billing overview](/settings/billing/overview).

Because keys are per-workspace, per-workspace cost attribution on the provider dashboard is straightforward.

## Security

* Keys are stored encrypted with a per-workspace key.
* Rotation is instant.
* Deletion is permanent (the key isn't retained).
* Every add / rotate / delete is audited.

## Related

* [`nora providers`](/cli/providers) — CLI reference.
* [Model defaults](/settings/models/defaults) — workspace-wide model preferences.
* [Billing overview](/settings/billing/overview) — Nora platform billing.
* [Approvals](/reliable/optimization/approve) — approval gates can block model swaps if configured.
