Models & Capabilities
Fenno reduces integration work through common API protocols. Each protocol still has its own authentication headers, request fields and stream events; use the reference for the endpoint you select.
The authoritative model list lives in the console and changes as upstream providers open new models. Every capability below requires support from the chosen model and route. This page documents selection criteria, not a static model catalog or a universal feature guarantee.
Capability matrix
| Capability | Notes | Endpoint |
|---|---|---|
| Text generation | Chat, completion, long-form writing, code | /v1/chat/completions, /v1/responses, /v1/messages |
| Multimodal input | Images, PDFs and other content parts | same (array content) |
| Tool calls | Function calling / tool use, parallel or multi-turn | same (tools) |
| Structured output | Supported OpenAI-compatible models and requests | Chat uses response_format; Responses uses text.format |
| Reasoning | Model-specific capability and budget | Chat, Responses and Messages use different reasoning fields |
| Prompt caching | Reuse long prefixes to cut cost and latency | same (automatic or explicit markers) |
| Streaming | Incremental output for real-time display | same (stream: true) |
| Image generation | Text-to-image and image edits | /v1/images/generations, /v1/images/edits |
| Embeddings | Vector representations | /v1/embeddings |
Model identifiers
Identifiers are strings such as gpt-*, claude-* and gemini-*. Recommended practice:
- Keep model names in a config constant, not scattered through code;
- Pin concrete versions in production to avoid behavior drift;
- Roll out by key or business dimension rather than random client-side choice.
Choosing a protocol
Change base_url and api_key; request and response shapes stay OpenAI-compatible.
Use /v1/messages and keep Messages API content blocks.
Use /v1beta/models/* with generateContent and streaming.
Billing and capability checks
Use current model pricing and billing definitions in your account. An HTTP failure or missing usage alone does not establish that a request was free. See usage and costs.
Being listed does not establish support for every endpoint, image, tool or cache feature. Verify the intended workflow. Model discovery finds IDs; it is not a full capability probe.