Hi HN,We built OpenModel, an AI API gateway with a slightly weird design choice. Most multi-model gateways out there normalize everything to OpenAI-compatible format. We didn t — we expose three native API surfaces in parallel: POST /v1/responses OpenAI Responses API POST /v1/messages Anthropic Messages API POST /v1beta/models/... Gemini generateContent The interesting bit: routing happens by the model name, not the endpoint. So you can use the Anthropic SDK to call gpt-5.5, or the OpenAI SDK to call claude-opus-4-7. The gateway translates between formats upstream — your code never sees the underlying provider.The reason we did this: OpenAI-compatible-only gateways work fine if you ve built on OpenAI s SDK. But if you ve built on Anthropic SDK (Claude Code and any agent framework speaking native Anthropic Messages), or Google s GenAI SDK, you ve got two bad options. Rewrite to OpenAI shape, or sit behind another translation layer that loses fidelity on tool use, vision, and streaming. Neither is great.Three native surfaces means your SDK keeps working as-is. Translation cost moves into the gateway, out of your code.What s in it right now:- Cross-protocol routing (Anthropic SDK calls GPT-5.5, etc.) - RPM + TPM rate limits with two-phase TPM enforcement (tokenizer estimate, then reconcile against real count post-response) - Channel failover with billing dedup on internal retries - Native error formats per protocol — gateway errors come back in the shape your SDK expects, so error handling doesn t break - Streaming in all three native SSE formatsLive today: gpt-5.5, claude-opus-4-7, gemini-2.5-pro, deepseek-v4-pro, deepseek-v4-flash.Anthropic SDK calling GPT looks like this: curl https://api.openmodel.ai/v1/messages \ -H X-Api-Key: $KEY \ -H anthropic-version: 2023-06-01 \ -d { model : gpt-5.5 , max_tokens : 1024, messages : [{ role : user , content : hi }]} Anthropic-format request goes in, gateway sees model=gpt-5.5, translates to OpenAI Responses shape upstream, GPT runs, response comes back in Anthropic Messages format.Early access: $10 in credits, no card. Heads up — this is a preview round. Credits expire in 7 days, accounts get wiped before public launch in 4-6 weeks. The wipe is intentional, we re using preview to lock the API design based on what people actually do with it. Preview users will get matching credits + priority migration when we publicly launch.Try: https://openmodel.ai Docs: https://docs.openmodel.aiHappy to discuss anything. The trickiest part of the build was honestly streaming format translation — Anthropic uses named SSE events (message_start, content_block_delta, message_stop), OpenAI uses flat data: lines, Gemini sends candidates arrays. Synthesizing one from another when there s a tool call spanning chunks gets ugly fast. Most of our test suite is round-trip correctness across format pairs.Drop questions.