Disclosure: independent site. Links to AgentRouter are referral links — we may earn a reward if you sign up, at no extra cost to you. We do not publish pricing or promo numbers we have not verified.

Setup Doctor

Three questions. You get the specific root cause, the exact commands, and the mistakes that waste people's time on that particular problem. It runs on a rules engine — no model call — so the same inputs always give the same answer, and it works instantly.

Loading diagnostics…

Answer what you know — partial answers still narrow it down. Nothing is sent anywhere except this site, and we store the answer pattern only, never anything identifying.

If you'd rather just debug it yourself

Run these three in order. The first one that fails is your actual problem.

# 1. Can you even reach the endpoint?
curl -sv "$BASE_URL/v1/models" 2>&1 | head -20

# 2. Does your credential authenticate? (try both header styles)
curl -s -o /dev/null -w 'bearer: %{http_code}\n'   "$BASE_URL/v1/models" -H "Authorization: Bearer $TOKEN"
curl -s -o /dev/null -w 'x-api-key: %{http_code}\n' "$BASE_URL/v1/models" -H "x-api-key: $TOKEN"

# 3. Does the endpoint actually serve the model you're asking for?
curl -s "$BASE_URL/v1/models" -H "Authorization: Bearer $TOKEN" \
  | python3 -c "import sys,json;[print(m['id']) for m in json.load(sys.stdin).get('data',[])]"
Reading the results
  • Connection refused / timeout — wrong host or port, nothing listening, or a doubled /v1 in your base URL.
  • 401 on both header styles — the credential itself is wrong or expired.
  • 401 on one, 200 on the other — you're sending the right key in the wrong header. Match what the gateway expects.
  • curl returns 200 but your tool still 401s — the tool isn't seeing your environment. Restart it from the shell where env | grep -i api looks right.
  • Model list doesn't contain your model — copy an id from that list verbatim, including any vendor prefix.