# Live API probes — 2026-07-30 (real keys, ground truth) All 12 providers were probed live today. **Every key authenticated and every provider returned a successful streamed chat completion (HTTP 200).** Raw captures in `/tmp/zyquo-probe/` (models JSON + `sse/*.txt`). ## `/models` listing results | Provider | Endpoint | Result | |---|---|---| | OpenAI | `GET https://api.openai.com/v1/models` (Bearer) | 200 — 132 models | | Anthropic | `GET https://api.anthropic.com/v1/models?limit=100` (x-api-key + anthropic-version) | 200 — 11 models | | xAI | `GET https://api.x.ai/v1/models` (Bearer) | 200 — 10 models | | Mistral | `GET https://api.mistral.ai/v1/models` (Bearer) | 200 — 60 models | | Gemini | `GET https://generativelanguage.googleapis.com/v1beta/models?key=…` | 200 — 41 generateContent-capable | | Qwen/DashScope | `GET https://dashscope-intl.aliyuncs.com/compatible-mode/v1/models` (Bearer) | 200 — 151 models | | DeepSeek | `GET https://api.deepseek.com/models` (Bearer) | 200 — 2 models: `deepseek-v4-flash`, `deepseek-v4-pro` | | Kimi/Moonshot | `GET https://api.moonshot.ai/v1/models` (Bearer) | 200 — 12 models (kimi-k2.5/k2.6/k2.7-code[-highspeed]/k3, moonshot-v1 family) | | Perplexity | `GET https://api.perplexity.ai/models` | **404 — no models endpoint** (catalog must be built-in from docs) | | Together | `GET https://api.together.xyz/v1/models` (Bearer) | 200 — large catalog (~400KB JSON, embeds `context_length` + `pricing`) | | DeepInfra | `GET https://api.deepinfra.com/v1/openai/models` (Bearer) | 200 — 174 models | | Cerebras | `GET https://api.cerebras.ai/v1/models` (Bearer) | 200 — 3 models: `gemma-4-31b`, `gpt-oss-120b`, `zai-glm-4.7` | ## Streaming chat completion smoke test (all HTTP 200) Model used per provider: OpenAI `gpt-4o-mini`, Anthropic `claude-haiku-4-5-20251001`, xAI `grok-4.3`, Mistral `mistral-small-latest`, Gemini-compat `gemini-flash-latest`, Qwen `qwen-flash`, DeepSeek `deepseek-v4-flash`, Kimi `kimi-k2.5`, Perplexity `sonar`, Together `meta-llama/Llama-3.3-70B-Instruct-Turbo`, DeepInfra `deepseek-ai/DeepSeek-V4-Flash`, Cerebras `gpt-oss-120b`. ## SSE shape observations (captured live) - **OpenAI**: `chat.completion.chunk` deltas; with `stream_options:{include_usage:true}` the final pre-`[DONE]` chunk has empty `choices` and a full `usage` object (incl. `completion_tokens_details.reasoning_tokens`). Chunks carry an `obfuscation` padding field — ignore unknown fields when decoding. - **Anthropic**: named SSE events observed: `message_start`, `content_block_start`, `content_block_delta`, `content_block_stop`, `message_delta`, `message_stop`, plus `ping` events. - **DeepSeek**: `deepseek-v4-flash` emits `delta.reasoning_content` string deltas **by default** (22 reasoning deltas before the answer in a trivial prompt), then `delta.content`. Both fields present on every delta (one is null). - **Perplexity**: chunks include `citations` (array of URLs) and `search_results` alongside `choices` and `usage`; each chunk also duplicates a cumulative `message` next to `delta`. - **Gemini (OpenAI-compat endpoint)**: works with Bearer auth; deltas can include `extra_content.google.thought_signature` (opaque base64) — must be tolerated/ignored; `finish_reason:"length"` seen when max_tokens hit mid-thought. - **Qwen (compat-mode intl)**: standard OpenAI chunk shape; `usage` null until final chunk. - **Kimi, Mistral, xAI, Together, DeepInfra, Cerebras**: standard OpenAI-style chunks, `data: [DONE]` terminator. ## Consequences for the app 1. `deepseek-v4-flash` / `v4-pro` replace the old `deepseek-chat` / `deepseek-reasoner` aliases in the catalog (verify alias behavior in Phase 7 — the old aliases may still route). 2. Perplexity requires a fully built-in catalog (no dynamic refresh). 3. Cerebras `/models` returns fewer models than docs may list — treat docs as the catalog source, `/models` as availability check. 4. JSON decoders must ignore unknown fields everywhere (OpenAI `obfuscation`, Gemini `extra_content`, Perplexity extras). 5. Reasoning-delta handling needed for: DeepSeek (`reasoning_content`), Qwen thinking models, Anthropic (`thinking_delta`), Gemini (thought signatures).