---
title: "Create Custom Provider"
method: POST
path: "/api/providers/"
tags: ["models"]
---

# Create Custom Provider

`POST /api/providers/`

POST handler with superadmin-only field protection.

Strips superadmin-only fields from non-superadmin requests before
delegating to OrganizationInjectionMixin.post() for org injection.

## Headers

- `Authorization` string, required

## Request body

- PublicCustomProviderCreateRequest — Public API serializer for creating custom providers - hides internal fields, uses provider_id as id
  - `provider_name` string, required
  - `provider_id` string, required
  - `extra_kwargs` unknown
  - `respan_discount_rate` number, double
  - `models_sync_config` unknown

## Response `201`

- PublicCustomProviderCreate — Public API serializer for creating custom providers - hides internal fields, uses provider_id as id
  - `project` string, nullable, required
  - `provider_name` string, required
  - `provider_id` string, required
  - `extra_kwargs` unknown
  - `created_at` string, date-time, nullable, required
  - `updated_at` string, date-time, nullable, required
  - `respan_discount_rate` number, double
  - `models_sync_config` unknown
  - `id` string, required

## Changes

- **2026-07-31** `c26d550029f8` — 2 breaking, 1 warning, 9 info
  - the `extra_kwargs` request property type/format changed from `object`/`` to ``/``
  - the `extra_kwargs` response's property type/format changed from `object`/`` to ``/`` for status `201`
  - removed the request property `api_key`
  - added the new optional request property `models_sync_config`
  - …8 more

[Change history](https://skmtc.dev/keywordsai/apis/api-reference/changes/api/providers/post.md)

---

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