Disclosure and availability: DaoXE is a service we operate. It is not available in mainland China. This article is for developers in regions allowed by the service terms.
Many multi-model gateways get described as "OpenAI-compatible". That phrase is useful, but incomplete.
If you only test Chat Completions, you can miss the real shape of the product:
- some clients speak OpenAI Chat Completions
- some agent tools prefer OpenAI Responses
- some coding tools prefer Anthropic Messages
- model availability is often account-scoped, not a permanent public list
This post is a practical checklist for validating a multi-protocol gateway without turning the article into a feature brochure.
1. Name the protocols explicitly
When I evaluate a gateway, I write down the protocols I care about first:
| Protocol | Typical clients | What I verify |
|---|---|---|
| OpenAI Chat Completions | SDKs, many chat UIs | /v1/chat/completions |
| OpenAI Responses | newer agent stacks |
/v1/responses if exposed |
| Anthropic Messages | Claude-oriented tools |
/v1/messages if exposed |
If a product only documents Chat Completions, that is fine — but I stop calling it multi-protocol in my own notes.
For DaoXE, the public base URL is:
https://daoxe.com/v1
I treat that as the OpenAI-compatible root for Chat Completions and model discovery, then check whether other protocol endpoints are documented and reachable for my account.
2. Discover models from the current account
Do not hardcode model names from a blog post.
export DAOXE_API_KEY="your_api_key"
export DAOXE_BASE_URL="https://daoxe.com/v1"
curl --fail-with-body --show-error --silent \
-H "Authorization: Bearer $DAOXE_API_KEY" \
"$DAOXE_BASE_URL/models"
What I look for:
- HTTP 401/403 when the key is wrong
- HTTP 200 with model IDs when the key is valid
- IDs I can copy exactly into the next request
If /models is account-scoped, that is a feature, not a bug. It means your integration should refresh models instead of shipping a stale static list.
3. Run one Chat Completions smoke request
Keep output tiny. You want connectivity, not a demo essay.
export DAOXE_MODEL="paste_exact_model_id_here"
curl --fail-with-body --show-error --silent \
-H "Authorization: Bearer $DAOXE_API_KEY" \
-H "Content-Type: application/json" \
-d "{
\"model\": \"$DAOXE_MODEL\",
\"max_tokens\": 8,
\"messages\": [{\"role\":\"user\",\"content\":\"ping\"}]
}" \
"$DAOXE_BASE_URL/chat/completions"
A useful pass/fail is simple:
- Pass: HTTP 200, a model field, tiny completion or usage metadata
- Fail: auth error, model-not-found, timeout, HTML error page
I keep retries disabled during smoke tests so a failure is easy to attribute.
4. Check the other protocols only if your clients need them
If your stack never uses Anthropic Messages or Responses, do not expand scope yet.
If it does, verify the exact endpoint your client will call. For example, some tools expect Anthropic-style headers and /v1/messages, while others only rewrite base_url for OpenAI SDKs.
The important part is not claiming every protocol is identical. The important part is knowing which protocol each client actually speaks.
5. Keep the client config boring
For OpenAI-compatible clients, the boring setup is usually best:
- Base URL:
https://daoxe.com/v1 - API key: from the dashboard
- Model: exact ID from the current account catalog
I keep a public, auditable setup page here:
and low-cost smoke/compare examples here:
What this is not
- not a latency benchmark
- not a model quality ranking
- not a claim that every model family is always available
- not a claim that every client supports every protocol path
It is a way to stop an integration review from collapsing into "does OpenAI Chat Completions work once?"
Closing checklist
- List the protocols your real clients use.
- Discover model IDs from the current account.
- Smoke-test one tiny Chat Completions request.
- Only then verify Responses / Anthropic Messages if needed.
- Keep keys out of source control.
If you want a starting point, the public examples repository above is intentionally small so you can audit every request path.
Related
- Previous note: The 3-step smoke test I use for any OpenAI-compatible API
- Homepage (tracked): daoxe.com
If you try the checklist against another gateway, keep the same order: protocols first, account models second, one tiny generation third.
Top comments (1)
If you only need one boring OpenAI Compatible base URL for coding tools, start with the smoke-test post first:
dev.to/seven7763/the-3-step-smoke-...
Client-specific wiring (Cline, Continue, Roo Code, and similar) is here:
dev.to/seven7763/how-i-configure-c...
Living matrix: github.com/seven7763/DaoXE-AI/blob...
Note: many IDE clients only speak Chat Completions even when the gateway also exposes Responses and Anthropic Messages. Match the protocol to the client.