---
title: provider | CodeWeaver Docs
description: API reference for codeweaver.core.types.provider
url: "https://docs.knitli.com/api/core/types/provider"
type: static
generatedAt: "2026-04-17T17:21:08.202Z"
---

# provider
       [Open in ChatGPT](https://chatgpt.com/?q=Read%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Ftypes%2Fprovider%2F.%20I%20want%20to%20ask%20questions%20about%20it.)[Open in Claude](https://claude.ai/new?q=Read%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Ftypes%2Fprovider%2F.%20I%20want%20to%20ask%20questions%20about%20it.)[View in Markdown](/codeweaver/api/core/types/provider.md)       [Share on LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Ftypes%2Fprovider%2F)[Share on X](https://x.com/intent/tweet?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Ftypes%2Fprovider%2F&text=provider)[Share on Threads](https://threads.net/intent/post?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Ftypes%2Fprovider%2F&text=provider)[Share on Bluesky](https://bsky.app/intent/compose?text=provider%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Ftypes%2Fprovider%2F)[Share on Facebook](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Ftypes%2Fprovider%2F)[Share on Reddit](https://reddit.com/submit?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Ftypes%2Fprovider%2F&title=provider)[Share on Hacker News](https://news.ycombinator.com/submitlink?u=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Ftypes%2Fprovider%2F&t=provider)[Share on Email](mailto:?subject=provider&body=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Ftypes%2Fprovider%2F)[Share on WhatsApp](https://wa.me/?text=provider%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Ftypes%2Fprovider%2F)[Share on Telegram](https://t.me/share/url?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fcore%2Ftypes%2Fprovider%2F&text=provider)
# `codeweaver.core.types.provider`
[Section titled “codeweaver.core.types.provider”](#codeweavercoretypesprovider)
Provider enums moved to core to break circular dependencies.

## Class: `Provider`
[Section titled “Class: Provider”](#class-provider)
Enumeration of available providers.

### Method: `all_envs`
[Section titled “Method: all_envs”](#method-all_envs)

**

```
all_envs()
```

Get all environment variables used by all providers.

### Method: `all_envs_for_client`
[Section titled “Method: all_envs_for_client”](#method-all_envs_for_client)

**

```
all_envs_for_client()
```

Get all environment variables used by this provider for a specific client.

### Method: `get_env_api_key`
[Section titled “Method: get_env_api_key”](#method-get_env_api_key)

**

```
get_env_api_key()
```

Get the API key from environment variables, if set.

### Method: `has_capability`
[Section titled “Method: has_capability”](#method-has_capability)

**

```
has_capability()
```

Check if the provider has a specific capability.

### Method: `is_agent_provider`
[Section titled “Method: is_agent_provider”](#method-is_agent_provider)

**

```
is_agent_provider()
```

Check if the provider is an agent model provider.

### Method: `is_data_provider`
[Section titled “Method: is_data_provider”](#method-is_data_provider)

**

```
is_data_provider()
```

Check if the provider is a data provider.

### Method: `is_embedding_provider`
[Section titled “Method: is_embedding_provider”](#method-is_embedding_provider)

**

```
is_embedding_provider()
```

Check if the provider is an embedding provider.

### Method: `is_reranking_provider`
[Section titled “Method: is_reranking_provider”](#method-is_reranking_provider)

**

```
is_reranking_provider()
```

Check if the provider is a reranking provider.

### Method: `is_sparse_provider`
[Section titled “Method: is_sparse_provider”](#method-is_sparse_provider)

**

```
is_sparse_provider()
```

Check if the provider is a sparse embedding provider.

### Method: `validate`
[Section titled “Method: validate”](#method-validate)

**

```
validate()
```

Validate provider-specific settings.

## Class: `ProviderCategory`
[Section titled “Class: ProviderCategory”](#class-providercategory)
Enumeration of available provider categories.

### Method: `categories`
[Section titled “Method: categories”](#method-categories)

**

```
categories()
```

Get all categories.

## Class: `SDKClient`
[Section titled “Class: SDKClient”](#class-sdkclient)
Enumeration of available SDK clients.

There’s not a 1-to-1 match of Provider to SDKClient, because some providers use the same SDK client (like OpenAI, which has 10+ providers using their SDK, at least for agents).

### Method: `as_provider`
[Section titled “Method: as_provider”](#method-as_provider)

**

```
as_provider()
```

Get the provider as a member of Provider.

### Method: `card_for_provider_and_category`
[Section titled “Method: card_for_provider_and_category”](#method-card_for_provider_and_category)

**

```
card_for_provider_and_category()
```

Get the service card for a given provider and category that uses this SDK client.

### Method: `client_available`
[Section titled “Method: client_available”](#method-client_available)

**

```
client_available()
```

Check if the SDK client package is available.

### Method: `clients`
[Section titled “Method: clients”](#method-clients)

**

```
clients()
```

Get all SDK clients as lazy imports.

### Method: `for_provider_and_category`
[Section titled “Method: for_provider_and_category”](#method-for_provider_and_category)

**

```
for_provider_and_category()
```

Get the SDK clients for a given provider and category.

## Function: `get_categories`
[Section titled “Function: get_categories”](#function-get_categories)

**

```
get_categories()
```

Get the categories of a provider.

## Function: `get_default_provider_import_for_category`
[Section titled “Function: get_default_provider_import_for_category”](#function-get_default_provider_import_for_category)

**

```
get_default_provider_import_for_category()
```

Get the default provider import for a given provider and category.