Use any OpenAI-compatible endpoint

Pick the Custom provider, paste a base URL and a model ID, and OpenClay talks to it exactly like a built-in provider. One adapter covers Azure, the aggregators, and anything you run yourself.

Why one adapter covers so much

Practically every inference provider implements OpenAI's /v1/chat/completions shape, because that is what most client libraries expect. So rather than writing an integration per vendor, OpenClay speaks that one dialect and lets you name the host.

ProviderBase URLNotes
Azure OpenAIhttps://YOUR-RESOURCE.openai.azure.com/openai/v1Your deployment name is the model ID
OpenRouterhttps://openrouter.ai/api/v1One key, hundreds of models
Groqhttps://api.groq.com/openai/v1Very fast inference on open models
Togetherhttps://api.together.xyz/v1Open-weight models at low cost
Fireworkshttps://api.fireworks.ai/inference/v1Open models, fast
DeepInfrahttps://api.deepinfra.com/v1/openaiCheap open-weight hosting
Ollamahttp://localhost:11434/v1Local models, self-host only
LM Studiohttp://localhost:1234/v1Local models, self-host only
vLLMhttp://your-server:8000/v1Your own GPU server

Setting it up

  • In step 3, choose Custom.
  • Paste the base URL. Ending it at /v1 is enough, because OpenClay appends /chat/completions. Pasting the full path works too.
  • Enter the model ID exactly as your provider names it.
  • Optionally enter the token prices so cost estimates work. Leave them at zero and OpenClay reports token counts without inventing a price.
  • Add your key in step 4, or leave it blank for a local gateway that needs none.

Azure OpenAI

Azure names things differently: your deployment name is the model ID, and the key goes in an api-key header rather than Authorization. OpenClay sends both headers, so either convention works without configuration.

Base URL:  https://my-resource.openai.azure.com/openai/v1
Model ID:  my-gpt5-deployment

Azure throttles on tokens-per-minute rather than requests, which is exactly what the run panel's peak-TPM figure is for. Size your quota against the peak, not the average, because the average hides the bursts that actually trigger a 429.

Web search

Most OpenAI-compatible gateways do not implement a server-side search tool, so the custom provider does not send one. Your prompts still run, and answers come from the model's training data rather than the live web. Use a built-in provider whenever freshness matters.

Local models and the private-address rule

The hosted instance at openclay.io refuses base URLs on loopback, private or link-local addresses. That is not an arbitrary restriction: the proxy runs on our server, so localhost would mean our localhost, and a URL like http://169.254.169.254/ would let a visitor read cloud metadata through us.

On your own machine the same reasoning inverts, because localhost means your own Ollama, so self-hosted installs can opt in:

# .env.local
OPENCLAY_ALLOW_PRIVATE_ENDPOINTS=true

Only set this on an instance you control and that is not exposed to the public internet.

Troubleshooting

  • 404 on validate: the model ID is wrong, or the base URL already included /chat/completions twice.
  • 401: wrong key, or Azure expecting the deployment rather than the base model name.
  • Empty responses: some gateways ignore response_format: json_object. Add “Return ONLY valid JSON” to your prompt in the advanced template editor.
  • Refused private address: expected on the hosted instance. Self-host and set the environment variable above.

No account, no card, no platform fee.

Bring your own API key and pay the model provider directly.

Set up a custom endpoint