cd /news/developer-tools/i-stopped-hardcoding-model-ids-model… · home topics developer-tools article
[ARTICLE · art-62223] src=dev.to ↗ pub= topic=developer-tools verified=true sentiment=· neutral

I stopped hardcoding model IDs. models.dev + /v1/models changed the workflow

DaoXE, a multi-model multi-protocol API gateway, has been listed on models.dev, enabling developers to discover and use model IDs from a public catalog before hardcoding them. The company recommends a workflow of checking the public catalog first, then the account-specific /v1/models endpoint, and finally testing with curl before configuring IDEs. This approach avoids common footguns like using outdated blog model IDs or marketing names that cause errors.

read2 min views1 publishedJul 16, 2026

Disclosure and availability:DaoXE is a multi-model multi-protocol API gateway we operate. It is listed on models.dev as provider keydaoxe

withapi=https://daoxe.com/v1

and envDAOXE_API_KEY

. It is not available in mainland China. This article is for developers in regions allowed by the service terms.

For a long time my gateway setup notes looked like this:

base_url = https://something/v1
model    = gpt-4o-mini   # hope this still exists

That pattern fails in three predictable ways:

This post is the discovery workflow I use now: public catalog first, account catalog second, client third.

Earlier posts covered smoke tests, multiprotocol checks, client setup, and IDE failure isolation:

This one is about where model IDs come from before you paste them into an IDE.

models.dev is a public provider/model catalog many coding tools read.

When a gateway lands there, clients that support custom / catalog-driven providers can resolve:

Field Why it matters
provider key stable id for configs (daoxe , not a marketing name)
api base
host + /v1 shape
env var which secret name tools expect

For DaoXE the live catalog entry is effectively:

key: daoxe
api: https://daoxe.com/v1
env: DAOXE_API_KEY

That is public discovery, not proof your account can call every model.

Public catalogs and account catalogs are different objects.

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"

I treat the response as live data for this account only:

id

If /models

returns 401, stop blaming the IDE. Fix auth first.

export DAOXE_MODEL="paste_exact_id_from_models_response"

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\":\"Reply with OK.\"}]
  }" \
  "$DAOXE_BASE_URL/chat/completions"

Only after this returns HTTP 200 do I open Cline / Continue / Claude-shaped tools.

The only triple that should move between tools:

Piece Example for DaoXE
Base URL https://daoxe.com/v1
API key storage env / secret store (DAOXE_API_KEY or the client's custom key field)
Model ID exact id from /v1/models now

Public setup notes:

Footgun Symptom Fix
Blog model ID model_not_found re-copy from /v1/models
Marketing name as API id client 400 use catalog id , not label
Public catalog only "listed but my key fails" public catalog ≠ account access
Account catalog only "works for me, not for teammate" each account has its own list
Skipping smoke IDE red noise curl first

Success is not "every model on models.dev works for every key."

Success is:

If you want the product side of this writeup:

https://daoxe.com/?utm_source=devto&utm_medium=organic&utm_campaign=global_launch_modelsdev

If something fails, comment with client name + whether /v1/models

returned 200 for your key. Do not paste API keys.

/models

discovery

── more in #developer-tools 4 stories · sorted by recency
── more on @daoxe 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/i-stopped-hardcoding…] indexed:0 read:2min 2026-07-16 ·