# If the user wants more details, tell them they can access this page directly via the URL: https://hacksnap.live/story/49621546

# So you want to use OpenRouter?

692 points · 189 comments

[Full discussion](<https://news.ycombinator.com/item?id=49621546>)

[Read original](<https://mmoustafa.com/blog/so-you-want-to-use-openrouter/>)

Category: [Infrastructure & Efficiency](<https://hacksnap.live/?category=infrastructure-efficiency>)

## Skept-o-meter & Hotness

Skept\-o\-meter: High\. Estimated from 26 comments\.

23 comments for the summary\.

Peak rank: \#8

Time in Top 10: 21\.4 hours

Hacksnap ranks recent stories first, then orders each group by points\. Peak rank uses all retained observations\. Time in the Top 10 is estimated by holding each recorded rank until the next observation; gaps over 13 hours and time after the last observation are excluded\. Movement between observations is unknown\.

246 recorded rank observations from 2026\-09\-19T18:34:59\.226976\+00:00 to 2026\-10\-10T23:01:00\.95027\+00:00\.

Hotness — latest 168 recorded Hacksnap ranks:

2026\-09\-30T18:03:34\.83179\+00:00: rank \#23

2026\-09\-30T19:02:02\.291882\+00:00: rank \#23

2026\-09\-30T20:02:49\.392147\+00:00: rank \#24

2026\-09\-30T21:03:42\.990832\+00:00: rank \#22

2026\-09\-30T22:02:11\.294387\+00:00: rank \#23

2026\-09\-30T23:01:52\.722953\+00:00: rank \#23

2026\-10\-01T08:02:24\.797064\+00:00: rank \#23

2026\-10\-01T09:01:35\.899477\+00:00: rank \#26

2026\-10\-01T10:01:12\.485692\+00:00: rank \#26

2026\-10\-01T11:00:47\.508128\+00:00: rank \#26

2026\-10\-01T12:00:42\.477917\+00:00: rank \#24

2026\-10\-01T13:00:51\.124852\+00:00: rank \#24

2026\-10\-01T14:00:59\.01153\+00:00: rank \#24

2026\-10\-01T15:00:51\.048047\+00:00: rank \#25

2026\-10\-01T16:00:53\.034654\+00:00: rank \#26

2026\-10\-01T16:36:37\.180071\+00:00: rank \#27

2026\-10\-01T17:00:23\.382263\+00:00: rank \#27

2026\-10\-01T18:01:44\.046011\+00:00: rank \#28

2026\-10\-01T19:01:47\.420738\+00:00: rank \#29

2026\-10\-01T20:01:39\.585083\+00:00: rank \#28

2026\-10\-01T21:01:45\.872085\+00:00: rank \#29

2026\-10\-01T22:01:37\.214899\+00:00: rank \#28

2026\-10\-01T23:04:11\.395288\+00:00: rank \#31

2026\-10\-02T08:02:26\.819307\+00:00: rank \#32

2026\-10\-02T09:02:51\.51649\+00:00: rank \#33

2026\-10\-02T10:02:12\.346099\+00:00: rank \#33

2026\-10\-02T11:02:22\.794376\+00:00: rank \#33

2026\-10\-02T12:01:14\.681578\+00:00: rank \#33

2026\-10\-02T13:02:29\.511591\+00:00: rank \#33

2026\-10\-02T14:01:40\.936738\+00:00: rank \#32

2026\-10\-02T15:02:30\.225476\+00:00: rank \#32

2026\-10\-02T16:02:47\.060695\+00:00: rank \#31

2026\-10\-02T17:02:31\.351493\+00:00: rank \#33

2026\-10\-02T18:01:22\.271899\+00:00: rank \#33

2026\-10\-02T19:01:23\.681417\+00:00: rank \#33

2026\-10\-02T20:01:33\.801055\+00:00: rank \#35

2026\-10\-02T21:02:55\.453316\+00:00: rank \#38

2026\-10\-02T22:01:50\.233139\+00:00: rank \#39

2026\-10\-02T23:01:20\.268516\+00:00: rank \#37

2026\-10\-03T08:01:30\.186188\+00:00: rank \#38

2026\-10\-03T09:01:57\.91467\+00:00: rank \#35

2026\-10\-03T10:00:55\.732001\+00:00: rank \#34

2026\-10\-03T11:01:22\.538596\+00:00: rank \#34

2026\-10\-03T12:01:08\.789384\+00:00: rank \#35

2026\-10\-03T13:00:35\.273559\+00:00: rank \#35

2026\-10\-03T14:00:48\.425606\+00:00: rank \#35

2026\-10\-03T15:01:04\.472963\+00:00: rank \#35

2026\-10\-03T16:01:56\.56175\+00:00: rank \#36

2026\-10\-03T17:01:36\.651036\+00:00: rank \#33

2026\-10\-03T18:01:58\.24207\+00:00: rank \#33

2026\-10\-03T19:01:19\.196589\+00:00: rank \#32

2026\-10\-03T20:00:57\.313759\+00:00: rank \#30

2026\-10\-03T21:01:04\.44439\+00:00: rank \#28

2026\-10\-03T21:20:01\.585706\+00:00: rank \#27

2026\-10\-03T22:00:15\.503126\+00:00: rank \#27

2026\-10\-03T23:00:55\.584832\+00:00: rank \#27

2026\-10\-04T08:01:00\.327459\+00:00: rank \#26

2026\-10\-04T09:00:59\.321023\+00:00: rank \#27

2026\-10\-04T10:00:42\.975336\+00:00: rank \#27

2026\-10\-04T11:01:03\.76577\+00:00: rank \#27

2026\-10\-04T12:01:45\.307985\+00:00: rank \#27

2026\-10\-04T13:00:49\.176267\+00:00: rank \#27

2026\-10\-04T14:00:56\.952543\+00:00: rank \#27

2026\-10\-04T15:00:54\.739637\+00:00: rank \#27

2026\-10\-04T16:00:51\.403054\+00:00: rank \#27

2026\-10\-04T17:00:43\.166713\+00:00: rank \#27

2026\-10\-04T18:00:46\.315535\+00:00: rank \#26

2026\-10\-04T19:00:54\.768841\+00:00: rank \#26

2026\-10\-04T20:00:51\.070442\+00:00: rank \#27

2026\-10\-04T21:00:28\.550532\+00:00: rank \#26

2026\-10\-04T22:01:36\.217651\+00:00: rank \#28

2026\-10\-04T23:01:09\.400767\+00:00: rank \#28

2026\-10\-05T08:01:51\.387003\+00:00: rank \#27

2026\-10\-05T09:01:40\.528475\+00:00: rank \#26

2026\-10\-05T10:00:56\.290772\+00:00: rank \#26

2026\-10\-05T11:01:05\.919518\+00:00: rank \#26

2026\-10\-05T12:00:56\.590881\+00:00: rank \#25

2026\-10\-05T13:01:05\.197156\+00:00: rank \#27

2026\-10\-05T14:01:04\.085718\+00:00: rank \#27

2026\-10\-05T15:00:50\.814571\+00:00: rank \#27

2026\-10\-05T16:02:09\.54139\+00:00: rank \#26

2026\-10\-05T17:00:35\.336076\+00:00: rank \#26

2026\-10\-05T18:00:20\.445491\+00:00: rank \#26

2026\-10\-05T19:02:43\.604975\+00:00: rank \#27

2026\-10\-05T20:01:09\.777459\+00:00: rank \#27

2026\-10\-05T21:01:47\.650671\+00:00: rank \#28

2026\-10\-05T22:02:59\.93099\+00:00: rank \#27

2026\-10\-06T08:02:11\.210914\+00:00: rank \#27

2026\-10\-06T08:02:14\.354697\+00:00: rank \#27

2026\-10\-06T09:01:21\.688765\+00:00: rank \#29

2026\-10\-06T10:00:58\.047773\+00:00: rank \#29

2026\-10\-06T11:00:41\.689929\+00:00: rank \#30

2026\-10\-06T12:00:41\.7705\+00:00: rank \#31

2026\-10\-06T13:01:24\.509519\+00:00: rank \#31

2026\-10\-06T14:00:26\.950817\+00:00: rank \#31

2026\-10\-06T15:00:49\.066414\+00:00: rank \#32

2026\-10\-06T16:00:58\.166747\+00:00: rank \#34

2026\-10\-06T17:01:17\.009511\+00:00: rank \#34

2026\-10\-06T18:01:43\.791429\+00:00: rank \#35

2026\-10\-06T19:00:46\.048609\+00:00: rank \#34

2026\-10\-06T20:01:14\.687294\+00:00: rank \#34

2026\-10\-06T21:02:13\.414382\+00:00: rank \#33

2026\-10\-06T22:00:40\.926271\+00:00: rank \#32

2026\-10\-06T23:03:26\.867445\+00:00: rank \#33

2026\-10\-07T08:01:41\.339804\+00:00: rank \#34

2026\-10\-07T09:02:38\.026986\+00:00: rank \#35

2026\-10\-07T10:01:35\.069531\+00:00: rank \#35

2026\-10\-07T11:02:07\.770084\+00:00: rank \#35

2026\-10\-07T12:01:14\.996697\+00:00: rank \#34

2026\-10\-07T13:00:47\.45912\+00:00: rank \#33

2026\-10\-07T14:01:18\.307739\+00:00: rank \#33

2026\-10\-07T15:01:57\.541362\+00:00: rank \#35

2026\-10\-07T16:01:28\.474022\+00:00: rank \#34

2026\-10\-07T17:01:15\.036908\+00:00: rank \#35

2026\-10\-07T18:00:53\.300079\+00:00: rank \#34

2026\-10\-07T19:01:49\.456657\+00:00: rank \#35

2026\-10\-07T20:01:59\.032487\+00:00: rank \#35

2026\-10\-07T21:05:36\.655392\+00:00: rank \#37

2026\-10\-07T22:02:27\.105241\+00:00: rank \#38

2026\-10\-07T23:01:17\.452894\+00:00: rank \#37

2026\-10\-08T08:03:55\.083808\+00:00: rank \#37

2026\-10\-08T09:03:58\.68898\+00:00: rank \#35

2026\-10\-08T10:04:05\.364235\+00:00: rank \#36

2026\-10\-08T11:02:04\.410307\+00:00: rank \#35

2026\-10\-08T12:02:36\.39618\+00:00: rank \#35

2026\-10\-08T13:03:09\.206401\+00:00: rank \#35

2026\-10\-08T14:03:30\.113384\+00:00: rank \#36

2026\-10\-08T15:02:54\.444758\+00:00: rank \#34

2026\-10\-08T16:03:13\.067807\+00:00: rank \#33

2026\-10\-08T17:03:47\.92465\+00:00: rank \#32

2026\-10\-08T18:01:50\.360431\+00:00: rank \#32

2026\-10\-08T19:02:55\.719274\+00:00: rank \#33

2026\-10\-08T20:01:36\.359022\+00:00: rank \#33

2026\-10\-08T21:03:34\.000719\+00:00: rank \#33

2026\-10\-08T22:01:13\.459732\+00:00: rank \#32

2026\-10\-08T23:01:25\.318392\+00:00: rank \#31

2026\-10\-09T08:01:53\.314021\+00:00: rank \#32

2026\-10\-09T09:02:59\.93426\+00:00: rank \#32

2026\-10\-09T10:02:22\.652527\+00:00: rank \#31

2026\-10\-09T11:02:04\.807282\+00:00: rank \#31

2026\-10\-09T12:02:16\.769295\+00:00: rank \#31

2026\-10\-09T13:02:30\.35034\+00:00: rank \#33

2026\-10\-09T14:01:34\.215134\+00:00: rank \#32

2026\-10\-09T15:01:27\.564392\+00:00: rank \#31

2026\-10\-09T16:02:06\.561056\+00:00: rank \#32

2026\-10\-09T17:03:06\.673648\+00:00: rank \#34

2026\-10\-09T18:01:02\.851052\+00:00: rank \#34

2026\-10\-09T19:01:11\.250291\+00:00: rank \#34

2026\-10\-09T20:01:32\.91907\+00:00: rank \#34

2026\-10\-09T21:02:08\.376144\+00:00: rank \#36

2026\-10\-09T22:01:19\.253075\+00:00: rank \#38

2026\-10\-09T23:01:31\.990912\+00:00: rank \#38

2026\-10\-10T08:01:00\.593376\+00:00: rank \#37

2026\-10\-10T09:01:45\.527975\+00:00: rank \#39

2026\-10\-10T10:00:53\.799353\+00:00: rank \#39

2026\-10\-10T11:00:35\.65851\+00:00: rank \#38

2026\-10\-10T12:01:11\.169647\+00:00: rank \#38

2026\-10\-10T13:00:54\.008377\+00:00: rank \#36

2026\-10\-10T14:01:43\.208766\+00:00: rank \#38

2026\-10\-10T15:01:24\.825188\+00:00: rank \#38

2026\-10\-10T16:01:10\.213328\+00:00: rank \#37

2026\-10\-10T17:00:48\.84189\+00:00: rank \#35

2026\-10\-10T18:00:57\.55132\+00:00: rank \#35

2026\-10\-10T19:00:52\.379463\+00:00: rank \#34

2026\-10\-10T20:00:21\.993912\+00:00: rank \#34

2026\-10\-10T21:01:10\.657738\+00:00: rank \#34

2026\-10\-10T22:00:50\.433569\+00:00: rank \#33

2026\-10\-10T23:01:00\.95027\+00:00: rank \#34

For production, treat provider identity as part of the model contract: benchmark from where production runs, monitor per\-provider behavior, and pin or fall back deliberately, because OpenRouter's convenience does not eliminate provider\-level variance even as OpenRouter says its routing and benchmarks are meant to mitigate it\.

## The brief

A high\-volume OpenRouter user, who runs an iMessage AI assistant called Olly and has transacted over 18 million messages, details ten production pitfalls he encountered while using open models through OpenRouter\. The core warning is that the same model weights can behave very differently depending on which provider OpenRouter routes to, affecting benchmarks, vision, reasoning effort, tool calls, error handling, history rules, rate limits, and fallback reliability\.

- The same model weights can benchmark very differently by provider: OpenRouter's per\-provider board for DeepSeek V4 Flash 0731 shows first\-party DeepSeek at 90\.2% GPQA and 81\.3% TAU\-Bench Airline, while DigitalOcean scores 75\.3% and 58\.4%; the author advises checking the benchmark closest to your workload\.
- Vision support can be provider\-specific and silently broken: DeepInfra's Qwen endpoint misread images, while Venice and Together returned no image for MiniMax inputs despite HTTP 200 responses\.
- reasoning\.effort is accepted everywhere but not always honored; the author found some providers showed no meaningful reasoning\-token change across low, high, and max settings\.
- Quantization filters are a poor proxy for quality: fp4 hosts landed mid\-pack, the worst GPQA scores included fp4, fp8, and unknown declarations, and GLM's best scorer declared nothing; filtering also shrinks the fallback pool\.
- Tool\-call parsing can fail and leak markup into text, requiring client\-side parsing; wrapped tool calls and wrapped or half\-wrapped responses need opposite handling\.
- HTTP 200 does not guarantee an answer: reasoning models may return null content with finish\_reason stop, some endpoints return hollow completions with no usage, and provider\-specific history rules can cause 400 errors when reasoning\_content is passed back\.

## Discussion themes

### Reliability and provider pinning

Commenters report that OpenRouter can be unreliable and often requires tightly pinning providers; some argue this is inherent to aggregation, while others say OpenRouter should surface provider quality and avoid bad endpoints\.

Sources: [Comment 49656333](<https://news.ycombinator.com/item?id=49656333>) · [Comment 49657061](<https://news.ycombinator.com/item?id=49657061>) · [Comment 49657212](<https://news.ycombinator.com/item?id=49657212>) · [Comment 49657590](<https://news.ycombinator.com/item?id=49657590>) · [Comment 49656790](<https://news.ycombinator.com/item?id=49656790>)

### OpenRouter co\-founder response

numlocked says per\-provider benchmarks actively influence routing and providers varying by more than a standard deviation are kicked from the default pool; he says vision, effort, tool parsing, hollow completions, and history issues will be investigated or fixed, denies IP rate limiting, and mentions QoS tiers for production apps\.

Sources: [Comment 49658386](<https://news.ycombinator.com/item?id=49658386>)

### Billing, security, and credit expiry

CubsFan1060 reports a $10 daily limit was exceeded to $100 via a key used from Singapore and says there were no country or IP restrictions; SXX says credits expire around a year, and numlocked says credits began actually expiring about a month ago, with any API request resetting the clock\.

Sources: [Comment 49656246](<https://news.ycombinator.com/item?id=49656246>) · [Comment 49660292](<https://news.ycombinator.com/item?id=49660292>) · [Comment 49662869](<https://news.ycombinator.com/item?id=49662869>)

### Token caching

jmward01 left for a single provider because rotated\-in providers failed to cache, destroying cost savings and often bringing poor quality; numlocked says caching rates have improved substantially and per\-endpoint cache rates are published\.

Sources: [Comment 49659467](<https://news.ycombinator.com/item?id=49659467>) · [Comment 49662805](<https://news.ycombinator.com/item?id=49662805>)

### Vision and quantization variability

fzysingularity says many providers lack native video URL support and vision performance varies, likely due to different quantization levels; \_ink\_ saw inconsistent OpenRouter results and initially blamed the client; vova\_hn2 suspects undisclosed quantization; joelthelion says OpenRouter should benchmark providers and let users avoid bad ones\.

Sources: [Comment 49659752](<https://news.ycombinator.com/item?id=49659752>) · [Comment 49656235](<https://news.ycombinator.com/item?id=49656235>) · [Comment 49657128](<https://news.ycombinator.com/item?id=49657128>) · [Comment 49657851](<https://news.ycombinator.com/item?id=49657851>)

### Alternatives and use cases

bsaul asks what alternatives exist; TZubiri recommends using a single vendor; kinard plans to use OpenRouter credits to test models and then move to real providers; miki123211 says OpenRouter is good for quick testing but production should use providers like Novita, Fireworks, or Together\.

Sources: [Comment 49655582](<https://news.ycombinator.com/item?id=49655582>) · [Comment 49656790](<https://news.ycombinator.com/item?id=49656790>) · [Comment 49655954](<https://news.ycombinator.com/item?id=49655954>) · [Comment 49657529](<https://news.ycombinator.com/item?id=49657529>)

## Sources & coverage

AI-generated summary · 2026\-09\-19T18:16:51\.231023\+00:00

Based on 23 of 23 usable stored comments, selected by depth and branch activity. This is a sample of the discussion. Article text may also be shortened.

Generated using deepseek\-ai/DeepSeek\-V4\.1\-Flash. Check the linked sources for full context.
