# InteractionProcessCredentialRequest

A model provider API key of yours for a run to use. For each call the run tries these keys in `priority` order, then your tenant's model keys, and moves on to the next when one fails authentication or hits a quota.

**Kind:** an object, used in requests.

## Fields

| Field | Type | Required | Description |
|---|---|---|---|
| `provider` | `string` |  | The model provider the key is for: a model-key provider name (`Anthropic`, `OpenAi`, `DeepSeek`, `Gemini`, `Qwen`, `Glm` or `Kimi`, in any case), or an inline model's `credentialProvider`. |
| `apiKey` | `string` |  | The API key. Write-only: never returned. |
| `baseUrl` | `string \| null` |  | The endpoint to call with this key, such as a regional Qwen host or an Azure resource. Null: the provider's default. |
| `modelNameOverrides` | `map<string, string> \| null` |  | Catalogue model names mapped to the model or deployment id this key's endpoint uses for them, such as an Azure deployment name. Null or empty: the catalogue's ids are used as they are. |
| `credentialId` | `string` |  | Your own id for the key. The run's token usage and credential failures carry it, so you can tell which key served or failed a call. |
| `isOwnLicense` | `boolean` |  | Set to true for a key of your own, which the provider bills you for directly. Only such keys are used: to let a run fall back to Maitento's own key, set `allowMaitentoFallback` on the start request instead. |
| `priority` | `integer` |  | The order keys for the same provider are tried in: lowest first. |

## Example

```json
{
  "provider": "...",
  "apiKey": "...",
  "baseUrl": "...",
  "modelNameOverrides": {
    "key": "..."
  },
  "credentialId": "...",
  "isOwnLicense": false,
  "priority": 0
}
```

## Where it's used

- Inside [`AppStartRequest`](https://docs.maitento.com/reference/types/app-start-request.md)
- Inside [`InteractionProcessStartRequest`](https://docs.maitento.com/reference/types/interaction-process-start-request.md)
