Immersive Translate + CaMeL Hub: Custom OpenAI API Setup Guide
Immersive Translate is the bilingual web-page, PDF, and subtitle translator that runs as a browser extension (Chrome, Edge, Firefox, Safari) plus desktop and mobile apps. Its built-in AI engines are convenient but locked to whatever the vendor bundles; switching the translation service to a custom OpenAI-compatible API and pointing it at CaMeL Hub instead gives you one key that can call GPT, Claude, Gemini, and DeepSeek models, billed pay-as-you-go against your own CaMeL Hub balance, and lets you swap the model per page whenever speed, cost, or phrasing quality matters more.
-
Create a CaMeL Hub API key
Sign in to the CaMeL Hub console and open the Tokens page, then create a new token (or reuse an existing one). Copy the key β that's the only credential Immersive Translate needs; it never touches your console password. -
Open the OpenAI-compatible custom translation option
In the extension's settings (toolbar icon menu, or the full options page), go to Translation Services and select the OpenAI-style engine, then switch it to bring-your-own-key / custom API mode. That's the entry point that lets you override the key, endpoint, and model instead of using Immersive Translate's own bundled OpenAI plan. -
Paste the API key
Paste the token from step 1 into the field labeled API Key. Copy it exactly as shown in the console β no extra prefix, whitespace, or line break. -
Expand the advanced / custom settings
Click to expand the section usually labeled something like "More custom settings" β the endpoint and model fields are collapsed by default and easy to miss. -
Set the API endpoint
In the field named API URL / API Endpoint, enter CaMeL Hub's OpenAI-compatible chat endpoint. Immersive Translate's custom-API mode expects the full chat-completions path, not just the bare host, so append /chat/completions yourself:https://api.camel-hub.com/v1/chat/completions -
Set the model
In the Model field, type the exact model id you want CaMeL Hub to route the request to. For webpage translation, fast non-reasoning models translate quicker and cheaper than reasoning models; deepseek-v4-flash is a solid low-cost default, and gpt-5.4-mini or gemini-3.5-flash also work well.deepseek-v4-flash -
Save and translate a test page
Save the settings, then trigger a translation on any page (selection or full-page translate). If a bilingual result shows up, you're done. If nothing happens, re-check the endpoint string from step 5 and the key from step 3 first β that covers almost every failure. -
Skip reasoning models for bulk translation
Avoid OpenAI's o-series-style models and the heavier gpt-5.x reasoning variants for this use case β they're slower per page, cost more per token, and can leak chain-of-thought text or step numbering into the translated output. Prefer non-reasoning models such as deepseek-v4-flash, gpt-5.4-mini, gemini-3.5-flash, or claude-haiku-4-5.
Frequently asked questions
Immersive Translate isn't showing a model dropdown β do I need to fetch a list first?
No. Custom API mode doesn't call a models-list endpoint, so there's nothing to fetch or wait on. Just type the model id directly into the Model field, e.g. deepseek-v4-flash or gpt-5.4-mini β any model id visible in your CaMeL Hub console works.
The key verification / connection test fails with an error
Almost always one of three things: the endpoint is missing the /chat/completions suffix, the key was pasted with a trailing slash or stray space, or the token was revoked or disabled in the console. Re-copy the key fresh from the Tokens page and double-check the full endpoint string against step 5.
Which model should I pick for webpage translation?
Fast, non-reasoning models work best: deepseek-v4-flash as a cheap default, gpt-5.4-mini or gemini-3.5-flash for stronger phrasing, claude-haiku-4-5 if you prefer Claude's tone. Skip reasoning-heavy models β they add latency and cost without improving translation quality for this task.
Does this draw from my CaMeL Hub balance or subscription, and can I track spend?
Yes β every translated page is billed on your token like any other API call, at that model's per-token rate. Usage and cost for this token show up in the console's usage log the same as calls from any other client.