---
title: "Replace a custom provider"
method: PUT
path: "/api/providers/{provider_id}/"
tags: ["models"]
---

# Replace a custom provider

`PUT /api/providers/{provider_id}/`

Replace editable fields for a custom provider. The `provider_id` path value remains the identifier.

## Path parameters

- `provider_id` string, required

## Headers

- `Authorization` string, required

## Request body

- object
  - `provider_name` string — Human-readable provider name.
  - `extra_kwargs` object — Provider configuration. Put provider credentials under extra_kwargs.api_key.

## Response `200`

Updated provider.

- ModelsReplaceCustomProviderResponse200
  - `id` string, required — Provider string ID. Same value as `provider_id`.
  - `provider_id` string, required — Unique provider identifier within your organization.
  - `provider_name` string, required — Human-readable provider name.
  - `extra_kwargs` object — Stored provider configuration. The current backend returns this object, including credentials it contains; handle the response as sensitive.
  - `created_at` string, date-time, nullable
  - `updated_at` string, date-time, nullable

## Other responses

- `400` — Bad Request
- `401` — Unauthorized - Missing or invalid authentication
- `403` — Forbidden
- `404` — Not Found

---

[API](https://skmtc.net/keywordsai/apis/api-reference.md) · [All operations](https://skmtc.net/keywordsai/apis/api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/keywordsai/api-reference/revisions/4e064cf81dae/schema)
