Skip to main content

AI Provider Keys

Provider keys hold your upstream vendor credentials (OpenAI, Anthropic, etc.). Create a key here, then link it to a model so inference calls authenticate.

Access it as client.ai.provider_keys on a Strongly client, or the same path on AsyncStrongly with await. All methods exist on both with identical signatures.

Quick start

from strongly import Strongly

client = Strongly()

# List (auto-paginates as you iterate) # filters: provider, status, search
for ai in client.ai.provider_keys.list():
print(ai.id)

# Create
created = client.ai.provider_keys.create(
name="...",
provider="...",
api_key="...",
)
print(created.id)

# Read it back
fetched = client.ai.provider_keys.retrieve(created.id)

# Delete (returns None; raises on failure)
client.ai.provider_keys.delete(created.id)

Methods

Core

list

list(*, provider: Optional[str] = None, status: Optional[str] = None, search: Optional[str] = None, limit: Optional[int] = None) -> SyncPaginator[ProviderKey]

List provider API keys with pagination and filtering.

Args: provider: Filter by provider name. status: Filter by status ("active" or "inactive"). search: Search by name, description, or provider. limit: Maximum number of items to return (default: all matching items).

create

create(*, name: str, provider: str, api_key: str, description: Optional[str] = None, provider_organization: Optional[str] = None) -> ProviderKey

Create a new provider API key.

Required fields: name, provider, api_key (apiKey).

retrieve

retrieve(key_id: str) -> ProviderKey

Get a single provider API key by ID.

update

update(key_id: str, *, name: Optional[str] = None, description: Optional[str] = None, api_key: Optional[str] = None, provider_organization: Optional[str] = None) -> ProviderKey

Update a provider API key.

delete

delete(key_id: str) -> None

Delete a provider API key.

Other

test

test(key_id: str) -> ProviderKeyTestResult

Test a provider API key to verify it works.