---
title: "Save a company's model and key for the website assistant"
method: PUT
path: "/v1/admin/assistant-provider/{provider}"
tags: ["Operations"]
---

# Save a company's model and key for the website assistant

`PUT /v1/admin/assistant-provider/{provider}`

## Request

- Base URL: `https://loppee.com`
- URL: `https://loppee.com/v1/admin/assistant-provider/{provider}`
- Auth: HTTP bearer

Human manage_team, two-step sign-in and a recent confirmation. The write-only key is checked with the company and kept in the encrypted secret store; a key the company refuses is not saved. Leave the key out to change only the model. The key is never returned or logged.

## Path parameters

- `provider` string, required

## Request body

- object
  - `model` string, required
  - `api_key` string
  - `base_url` string
  - `custom_wire` 'chat_completions' | 'anthropic_messages'
  - `make_active` boolean, required

## Response `200`

Save a company's model and key for the website assistant response

- object
  - `status` 'saved', required
  - `key_check` 'passed' | 'key_rejected' | 'quota_spent' | 'could_not_check', nullable, required
  - `settings` object, required
    - `schema_version` '1.0', required
    - `assistant_enabled` boolean, required
    - `storage` 'available' | 'unavailable', required
    - `in_use` object, required
      - `source` 'back_office' | 'environment' | 'none', required
      - `provider` 'gemini' | 'groq' | 'openai' | 'anthropic' | 'custom', nullable, required
      - `label` string, nullable, required
      - `model` string, nullable, required
    - `environment_fallback` object, nullable, required
      - `provider` 'gemini' | 'groq' | 'openai' | 'anthropic' | 'custom', required
      - `model` string, required
    - `providers` object[], required
      - `provider` 'gemini' | 'groq' | 'openai' | 'anthropic' | 'custom', required
      - `label` string, required
      - `model` string, required
      - `base_url` string, nullable, required
      - `custom_wire` 'chat_completions' | 'anthropic_messages', nullable, required
      - `is_active` boolean, required
      - `key_stored` true, required
      - `key_set_at` string, required
      - `updated_at` string, required
    - `catalog` object[], required
      - `id` 'gemini' | 'groq' | 'openai' | 'anthropic' | 'custom', required
      - `label` string, required
      - `default_model` string, required
      - `suggested_models` string[], required
      - `key_page` string, required
      - `free_tier` boolean, required
      - `data_use_note` string, required
      - `needs_address` boolean, required
    - `last_problem` object, nullable, required
      - `provider` 'gemini' | 'groq' | 'openai' | 'anthropic' | 'custom', required
      - `outcome` 'key_rejected' | 'quota_spent' | 'could_not_check', required
      - `at` string, required

## Other responses

- `400`: ErrorResponse
- `401`: ErrorResponse
- `403`: ErrorResponse
- `404`: ErrorResponse
- `409`: ErrorResponse
- `413`: ErrorResponse
- `429`: RateLimitError
- `default`: ErrorResponse

---

[API](https://skmtc.dev/loppee/apis/loppee-business-registry-api-for-external-agents.md) · [All operations](https://skmtc.dev/loppee/apis/loppee-business-registry-api-for-external-agents/llms.txt) · [OpenAPI document](https://skmtc.dev/loppee/apis/loppee-business-registry-api-for-external-agents/revisions/37285f7cddcd?raw)
