Adding a model
Models generate your GenUI experiences, and you bring your own: the GenUI Portal does not resell tokens, so serving runs on a model you pick and an API key you own. The token bill stays between you and your provider.
What it is
Section titled “What it is”The Model screen holds two things, both defined at the organization level and shared by your projects.
An API key is a credential for one provider. It is write-only: you paste it once, the platform encrypts and stores it, and no screen or API response ever shows it again. You can rotate it at any time by pasting a new value, and every model using that key picks up the new value immediately, without republishing anything.
A model is a choice of provider, one of that provider’s model names, the API key it should use, and a set of generation options that shape how it serves. Supported providers are Anthropic, OpenAI, and Gemini. A model entry is immutable once created: pointing a project at a different model, or changing any of its options, means adding a new entry, so what served yesterday stays reproducible. The key is the exception, because rotating a key does not change what serves.
You must add at least one API key and one model before a project can run a GenUI experience.
Generation options
Section titled “Generation options”Generation options are optional and start hidden: the add-a-model form keeps the common path short, and the options sit under an Advanced options section you expand when you want them. Leave one blank and the model serves on the provider’s own default. Because the options are frozen with the model, set them when you add the entry; to change one later, add a new model and point your project at it.
The options differ by provider, because the three providers expose different controls:
- Max output tokens (all providers) caps how many tokens a single response may use.
- Temperature (OpenAI and Gemini) sets how much the output varies, from 0 to 2. Anthropic models reject a custom temperature, so the option is not offered there.
- Reasoning effort (OpenAI) trades thoroughness against speed and cost:
none,minimal,low,medium,high,xhigh, ormax. Which levels a given model accepts depends on the model. - Base URL (OpenAI) points the model at an OpenAI-compatible host other than OpenAI itself, such as Kimi or Deepseek. It must be an
httpsURL, and it cannot point at a private or internal address. - Thinking level (Gemini) sets how hard the model thinks:
minimal,low,medium, orhigh. - Effort (Anthropic) controls how many tokens the model spends across the whole response:
low,medium,high,xhigh, ormax. Thinking (Anthropic) is eitheradaptive, where the model decides when and how deeply to think, ordisabled.
Test connection uses the exact options you set, so a value a model cannot accept surfaces there rather than in production.
How to use it
Section titled “How to use it”- Open Build → Model.
- Add an API key: pick the provider, give the key a name you will recognize later, and paste the key value.
- Add a model: pick the provider, the model name as the provider documents it (for example
claude-sonnet-4-5), and the API key it should use. The key must belong to the same provider. To tune how the model serves, expand Advanced options and set any of the generation options for that provider; leave them blank for provider defaults. - Press Test connection. The platform makes a request to the provider with your key, your model, and the options you set, and tells you whether that exact configuration works before anything depends on it.
- To rotate a key, open it and paste the new value. Nothing else changes.
- To fix a mistake, delete the entry and add a new one. You can delete a model that no project uses, and an API key that no model uses.
Failure modes
Section titled “Failure modes”- Test connection fails with “invalid key”. The provider rejected the key. Check that you pasted the full value and that the key is active in your provider’s console.
- Test connection fails with “model not available”. The key is valid, but it cannot use that model name. Check the spelling against the provider’s documentation and that your provider account has access to the model.
- Test connection fails with “provider unavailable”. The provider could not be reached. Nothing is wrong with your configuration; try again shortly. If you set a base URL, check that it is correct and reachable.
- Test connection fails after you set an option. The provider rejected a value it does not support for that model, such as a reasoning effort or thinking level the model does not offer. Adjust the option, or leave it blank to use the provider default.
- A model or key shows no delete button. Something still uses it, so the screen lists what does under “Used by” instead of offering a delete that would only be refused. An API key cannot be deleted while a model uses it, and a model cannot be deleted while any project version pins it, draft or published. Free the reference first, by pointing the model or the draft version elsewhere or deleting what depends on it, and the delete button returns.
- An agent cannot change models over MCP. Deliberate: model and key changes are dashboard-only, like all credential operations. Agents can list models, nothing more.