Skip to main content
Access 195+ AI models from leading providers through a single API. All models support the OpenAI-compatible chat completions format.

Browse Models

Visual Model Catalog — Search, filter, and compare all 195+ models with real-time pricing, context windows, and capabilities.

Using a Model

To use any model, pass its ID to the chat completions endpoint:
curl https://api.case.dev/llm/v1/chat/completions \
  -H "Authorization: Bearer sk_case_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic/claude-sonnet-4.5",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'
casedev llm:v1:chat create-completion \
  --model anthropic/claude-sonnet-4.5 \
  --message '{role: user, content: "Hello!"}'
import Casedev from 'casedev';

const client = new Casedev({ apiKey: 'sk_case_YOUR_API_KEY' });

const response = await client.llm.v1.chat.createCompletion({
  model: 'anthropic/claude-sonnet-4.5',
  messages: [{ role: 'user', content: 'Hello!' }]
});

console.log(response.choices[0].message.content);
import casedev

client = casedev.Casedev(api_key='sk_case_YOUR_API_KEY')

response = client.llm.v1.chat.create_completion(
    model='anthropic/claude-sonnet-4.5',
    messages=[{'role': 'user', 'content': 'Hello!'}]
)

print(response.choices[0].message.content)
resp, _ := client.Llm.V1.Chat.NewCompletion(ctx, casedev.LlmV1ChatNewCompletionParams{
	Model: casedev.F("anthropic/claude-sonnet-4.5"),
	Messages: casedev.F([]casedev.LlmV1ChatNewCompletionParamsMessage{{
		Role:    casedev.F(casedev.LlmV1ChatNewCompletionParamsMessagesRoleUser),
		Content: casedev.F("Hello!"),
	}}),
})
fmt.Println(resp.Choices[0].Message.Content)

Programmatic Access

Get the complete model list via API:
curl https://api.case.dev/llm/v1/models \
  -H "Authorization: Bearer sk_case_YOUR_API_KEY"
casedev llm:v1 list-models
import Casedev from 'casedev';

const client = new Casedev({ apiKey: 'sk_case_YOUR_API_KEY' });

const { data: models } = await client.llm.v1.listModels();

for (const model of models) {
  console.log(`${model.id}: $${model.pricing.input}/input, $${model.pricing.output}/output`);
}
import casedev

client = casedev.Casedev(api_key='sk_case_YOUR_API_KEY')

result = client.llm.v1.list_models()

for model in result.data:
    print(f'{model.id}: ${model.pricing.input}/input, ${model.pricing.output}/output')
result, _ := client.Llm.V1.ListModels(ctx)
for _, model := range result.Data {
	fmt.Printf("%s: $%s/input, $%s/output\n", model.ID, model.Pricing.Input, model.Pricing.Output)
}
Response includes all models with current pricing, context windows, and capabilities.