# Call models

Choose a live model and its endpoint from Models or GET /v1/models. Use POST /v1/chat/completions for OpenAI-compatible chat, POST /v1/messages for Anthropic messages, and POST /v1/embeddings for embeddings. Not every model supports every endpoint.

```python
from openai import OpenAI
import os
client = OpenAI(api_key=os.environ["KEEPBAL_API_KEY"], base_url="https://keepbal.com/v1")
result = client.chat.completions.create(model="MODEL_ID", messages=[{"role": "user", "content": "Hello"}])
print(result.choices[0].message.content)
```

```python
from anthropic import Anthropic
import os
client = Anthropic(api_key=os.environ["KEEPBAL_API_KEY"], base_url="https://keepbal.com")
result = client.messages.create(model="MODEL_ID", max_tokens=128, messages=[{"role": "user", "content": "Hello"}])
```

```sh
curl https://keepbal.com/v1/embeddings -H "Authorization: Bearer $KEEPBAL_API_KEY" -H "Content-Type: application/json" --data '{"model":"EMBEDDING_MODEL_ID","input":"Hello"}'
```

Replace the placeholder model IDs with catalog IDs for the chosen endpoint. Set stream: true on supported chat or messages requests to receive server-sent events; consume the stream to completion. Embeddings return JSON. Check Usage for settled token charges.

[Live models and prices](/models) · [Billing](/docs/billing)

[Docs](/docs)

[Quickstart](/docs/quickstart) · [Authentication](/docs/authentication) · [Billing](/docs/billing) · [Tools](/docs/tools) · [Models](/docs/models) · [MCP](/docs/mcp) · [Errors](/docs/errors) · [Rate limits and budgets](/docs/rate-limits-and-budgets)

[Previous: Tools](/docs/tools) · [Next: MCP](/docs/mcp)
