Cherry Studio talks to apimodels as an OpenAI-compatible provider. One API key unlocks every chat model (GPT-5.5, Claude, Gemini, GLM, …) and image model (gpt-image-2). This page has the full setup and troubleshooting.
Add an OpenAI provider in Cherry Studio, set the API host to https://apimodels.app/api/v1/ (the trailing slash matters), put your sk_… key in, and use a model id like gpt-5-5 or gpt-image-2.
Open Console in your console and create an sk_… key.
Cherry Studio → Settings → Model Providers → Add, pick type OpenAI. API host + key below.
Add models with + or fetch the list. Pick gpt-5-5 to chat, gpt-image-2 to generate images — both work in an ordinary conversation, no separate setup.
| Field | Value |
|---|---|
| Provider type | OpenAI |
| API host | https://apimodels.app/api/v1/ |
| API key | your sk_… key |
| Model | gpt-5.6-sol · gpt-5.6-terra · gpt-5-5 · claude-opus-4-8 · gemini-3-pro-preview · gpt-image-2 … |
⚠️ The API host must end with a slash: use https://apimodels.app/api/v1/ (with the /). Without it, Cherry Studio appends another /v1, giving …/api/v1/v1/… and the connection fails. Alternatively enter https://apimodels.app/api and let it append /v1 itself.
The full list shows up in Cherry Studio's model dropdown (served by our /v1/models endpoint). The common ones:
| For | Model id |
|---|---|
| Chat / coding | gpt-5.6-sol · gpt-5.6-terra · gpt-5.6-luna-max · gpt-5-5 · claude-opus-4-8 · gemini-3-pro-preview · glm-5.2 · MiniMax-M2.5 |
| Image | gpt-image-2 · gemini-3.1-flash-image-preview (Nano Banana 2) · gemini-3-pro-image-preview (Nano Banana Pro) · grok-imagine-image · doubao-seedream-5-0-pro · kling-v3 |
Image models sit behind the same provider and the same API host as the chat models — no second provider, and no # suffix tricks on the URL. In an ordinary conversation switch the model to gpt-image-2 (or gemini-3.1-flash-image-preview, grok-imagine-image, …) and just send your description; the picture comes back as an image in the reply.
curl -s https://apimodels.app/api/v1/chat/completions \
-H "Authorization: Bearer $APIMODELS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"messages": [{ "role": "user", "content": "a cute corgi puppy on grass" }]
}'
# → assistant message containing: Attach an image to the same message and it becomes image-to-image editing — just describe the change. Note that each message stands alone: the previous picture is not silently reused as a reference, so "draw a cat" followed by "draw a dog" will not bleed together. To edit the previous image, attach it again.
For programmatic use — your own size, count and callbacks — the standard OpenAI image endpoint is still there:
curl -s https://apimodels.app/api/v1/images/generations \
-H "Authorization: Bearer $APIMODELS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "a cute corgi puppy on grass",
"n": 1,
"size": "1024x1024"
}'If it won't connect, confirm the key + endpoint with curl first — this is exactly what Cherry Studio hits on "check connection":
# confirm the endpoint + your key work (this is what Cherry Studio checks):
curl -s https://apimodels.app/api/v1/models \
-H "Authorization: Bearer $APIMODELS_API_KEY" | head -c 300Then a chat call:
curl -s https://apimodels.app/api/v1/chat/completions \
-H "Authorization: Bearer $APIMODELS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5-5",
"messages": [{ "role": "user", "content": "Reply with exactly: ok" }]
}'| Symptom | Cause / fix |
|---|---|
| Connection check fails / no models | API host missing its trailing slash → became …/api/v1/v1/…. Use https://apimodels.app/api/v1/ (with the /). |
| HTTP 401 | Wrong or disabled key. Mint a fresh sk_… in the console and paste it again. |
| Picked a model but nothing / 400 Unknown model | Model id typo. Use the dash form, e.g. gpt-5-5, gpt-image-2 (see the table above). |
| Image takes a while | Rendering itself takes 10–90s; we hold the request until the picture is done (keeping a stream alive) — normal, not a hang. |
| Full endpoint pasted into the host → 404 | Cherry Studio appends the path to whatever you type. Pasting …/api/v1/images/generations turns into …/images/generations/chat/completions, which does not exist. Type only https://apimodels.app/api/v1/. The "preview" line under the field shows the final URL — check it before saving. |
| "No model available to test (e.g. a chat model)" | Your model list is still empty (0 models) — add one with + first. The message does not mean the key or host is wrong. Also note: running the check on an image model really does render an image and bills for it, so check with a chat model instead. |
| Our provider is missing from the AI-image module | A Cherry Studio limitation: a custom provider's image models cannot be selected in the painting module (upstream issue closed as not-planned). Use the image model in a normal conversation instead — same result. |