DeepSeek利用にOpenRouterが推奨される理由
OpenRouter は、DeepSeek モデルが複数のプロバイダーで提供され価格や速度に大きなばらつきがある現状に対し、ロードバランシングやフェイルオーバー機能を提供するルーティングレイヤーの価値を解説している。
キーポイント
DeepSeek の市場支配力とプロバイダーの多様性
2026 年 7 月時点で OpenRouter 上のトークンシェアで第 1 位を占める DeepSeek は、1 つのモデルが 16 社以上の異なるプロバイダーによって提供されており、価格やスループットに大きなばらつきがある。
OpenRouter のルーティング機能とコスト効率
OpenRouter はプロバイダーごとの価格差(最大 4 倍)や速度差を吸収し、デフォルトで安価なプロバイダーを優先しつつ障害時に自動切り替えるロードバランシングを提供する。
直接 API と OpenRouter の使い分け基準
安定した単一プロバイダー利用であれば直接接続が有利だが、OpenRouter を使うことでフェイルオーバー、プロバイダー固定、バージョン切り替えなどの柔軟性と信頼性を確保できる。
高度な制御機能と料金体系
開発者は速度や価格でソートしたり、特定のプロバイダーを除外・指定したりする細かな制御が可能であり、利用料には 5.5% のプラットフォーム手数料がかかる。
DeepSeek モデルの多様なプロバイダー
OpenRouter を通じて DeepSeek V4 Pro は16社以上の異なるプロバイダーから提供されており、各社で価格、稼働率、速度が異なります。
価格と性能のトレードオフ
最も安価なプロバイダーが最高の稼働率を提供する一方で、最遅のプロバイダーでも最安値の3倍以上を請求するなど、明確な相関関係はありません。
価格と性能の多様性
同じモデルでもプロバイダによって入力価格($0.44〜$1.74/M)、スループット(4〜57 tps)、稼働率(97%〜100%)に大きな差があり、単一プロバイダへの直接接続はそのリスクをすべて負うことになります。
重要な引用
"DeepSeek" is one model served by 16 different companies, at prices that vary by about 4x and throughput ranging from 4 to 57 tokens per second
Default load balancing deprioritizes any provider that had a significant outage in the last 30 seconds and is biased toward cheaper providers, weighted by the inverse square of price.
Routing buys failover, provider pinning, and version-switching by changing a string.
"When you call a DeepSeek model on OpenRouter, 16 different companies can serve it, and they are not interchangeable."
"The tradeoffs don't line up neatly: right now the cheapest provider also has the best uptime, and the slowest provider still charges over 3x the cheapest."
Go direct to one DeepSeek provider, and you're picking one row of that table and living with it, good or bad.
影響分析・編集コメントを表示
影響分析
この記事は、開発者が DeepSeek モデルを利用する際のアーキテクチャ選択において、単なるコスト比較を超えた信頼性と運用効率の観点からの判断材料を提供します。特に、複数のプロバイダーにまたがるモデル利用におけるリスク管理(フェイルオーバー)とコスト最適化を自動化するプラットフォームの価値を明確にし、LLM アプリケーション開発のベストプラクティスとして定着させる可能性があります。
編集コメント
DeepSeek の急激な普及と、その背後にあるプロバイダーの多様化という現実を踏まえ、開発者が単に「安い方」を選ぶのではなく、システム全体の信頼性を担保するルーティング戦略の重要性を説く内容です。OpenRouter が提供する高度な制御機能は、大規模な LLM アプリケーション運用において不可欠なインフラとしての役割を果たしています。
OpenRouter で最も利用されているモデル提供者は DeepSeek です。2026 年 7 月 13 日時点のライブランキングでは、トークンシェアで第 1 位を記録しています rankings。そのため、開発者から Reddit で頻繁に寄せられる「OpenRouter を経由して DeepSeek にアクセスすべきか、それとも DeepSeek の API に直接接続すべきか」という問いは、非常に的を射たものです。
実は「DeepSeek」という名前で提供されているモデルは、16 社もの異なるプロバイダーによって運用されています。価格はプロバイダー間で最大 4 倍も異なり、スループットも 1 秒あたり 4 トークンから 57 トークンまで幅があります(詳細はライブの V4 Pro プロバイダーページ を参照)。OpenRouter はこうしたバラつきのあるプロバイダー環境を、単一のスラッグに統合しました。これにより、常に稼働し続け、手頃な価格で、高速なアクセスが可能になります。また、特定のプロバイダーを固定したい場合などに調整できるコントロールも用意されています。
もちろん、直接接続する方が適切なケースもあります。その具体的なタイミングについては後ほど解説します。
Tl;dr(要約)
- DeepSeek は OpenRouter での利用が最も多い: ランキングでトークンシェア第 1 位(2026 年 7 月 13 日時点確認)。全体トップ 10 に 2 モデル、ツール呼び出し機能のトップ 10 にも 2 モデルがランクインしています。
- 単一の DeepSeek モデルが多数のプロバイダーで動作: ライブの V4 Pro ページを見ると、プロバイダー間の入力価格は約 4 倍の開きがあり、スループットは 1 秒あたり 4 トークンから 57 トークンの範囲に広がっています。
- OpenRouter はプロバイダー価格に上乗せしません: カタログに表示されている価格がそのまま請求額です。つまり、価格差は OpenRouter のマージンによるものではなく、各プロバイダーの経済事情そのものです。
- デフォルトのロードバランシングは、過去 30 秒間に大きな障害が発生したプロバイダーを優先度から外し、価格が安いプロバイダーを逆二乗で重み付けして偏向させます。速度や価格でソートしたり、支出上限を設定したり、プロバイダーオブジェクトの sort、max_price、order/only/ignore フィールドを使って特定の提供者を含めたり除外したりすることも可能です。
- スティックルーティングは、複数回の対話が一時的なホスト間で往復するのを防ぎ、フォールバック機能は長時間続くツール使用時の安定性を支えます。また、「正解することの価値が追加トークンコストを上回る」ような難問に対しては、Fusion が信頼性を高めます。
- これらすべての機能には、従量課金モデルで 5.5% のプラットフォーム利用料がかかります。安定した単一プロバイダーへのトラフィックであれば、直接接続の方がわずかに安くなることもあります。ルーティングを利用すれば、設定文字列を切り替えるだけでフェイルオーバー、プロバイダーの固定、バージョン切替えが可能になります。
DeepSeek は OpenRouter で最も使用されているモデル
まずは規模から見ていきましょう。これがその後のすべての特徴を理解する鍵となります。DeepSeek は OpenRouter におけるトークン供給量の最大手です。トークンシェアで第 1 位であり、上位 10 位内に 2 つのモデルを擁しています。一つのモデルがこれほど大量の生産環境トラフィックを担う場合、優れたプロバイダーと劣悪なプロバイダーの差はすぐに浮き彫りになります。それは多くの場合、エラーログとして現れ、しかも都合の悪いタイミングで発生します。
DeepSeek は、計算効率を重視しつつ、強力な推論能力とツール利用性能を備えたオープンウェイトの Mixture-of-Experts モデルファミリーです。最新の V4 シリーズでは、コンテキストウィンドウが 100 万トークンに拡大しても推論効率が維持されるハイブリッドアテンションシステムを採用しています。
OpenRouter で利用できるラインナップは、チャット用の V3 シリーズ、推論特化の R1 シリーズ、軽量なディストイルド小モデル、そして最新の V シリーズなど多岐にわたります。フラッグシップモデルの変更頻度が高いため、ここでは特定のバージョン番号を固定するよりも、直近の DeepSeek ハブ を確認することをお勧めします。ブログ記事で先月紹介されていたバージョン情報に頼るのではなく、常に最新の状態を確認してください。現在、ハブには 22 の DeepSeek モデルが登録されています。
以下は、2026 年 7 月 13 日時点のライブ ランキング を基にした内訳です:
利用ドメインにおける DeepSeek の立ち位置
- 作者トークンシェア:全作者の中で第 1 位、トークンの 16.7% を占める
- 使用頻度の高い上位 10 モデル:V4 Flash が第 3 位、V4 Pro が第 6 位にランクイン
- ツール呼び出し機能:上位 10 内に DeepSeek モデルが 2 つあり、それぞれ V4 Flash(第 3 位)と V4 Pro(第 6 位)
「DeepSeek」は複数のプロバイダーによって提供される単一のモデル
OpenRouter で DeepSeek モデルを呼び出す際、16 の異なる企業がサービスを提供しており、これらは互換性のあるものではなく、それぞれが独自の価格、稼働率(アップタイム)、速度を持っています。2026 年 7 月 13 日現在、DeepSeek V4 Pro は OpenRouter を通じて 16 のプロバイダーで利用可能です。
これらの選択肢には明確なトレードオフが存在します。現時点では最も安価なプロバイダーが最高の稼働率を誇っていますが、一方で最速のサービスを提供するプロバイダーは、最安値の 3 倍以上の料金を請求しています。どのプロバイダーを選ぶかは、直接利用するかルーター経由で利用するかという判断に直結する重要な要素です。

以下は、DeepSeek V4 プロバイダーの価格表を最高値と最低値に絞って表示したものです。価格は常に変動するため、実際に構築を行う前には必ず最新の数値を確認してください。
| プロバイダー | 入力価格 /MU | アップタイム | スループット |
|---|---|---|---|
| DeepSeek(最も安価、最高 uptime) | $0.435/M | 99.92% | 45 tps |
| Baseten(最も高価、最速) | $1.74/M | 99.45% | 57 tps |
| Together(最低 uptime) | $1.74/M | 97.44% | 46 tps |
| DigitalOcean(最遅) | $1.392/M | 99.64% | 4 tps |
同じモデルの重みでも、入力価格は約$0.44/M から$1.74/M の範囲で変動し、スループットは秒間 4 トークンから 57 トークン、アップタイムも約 97% からほぼ 100% と大きく開きがあります。DeepSeek のプロバイダーに直接接続する場合、あなたは上記の表の「1 つの行」を選ぶことになり、その結果が良かろうが悪かろうが受け入れなければなりません。一方、OpenRouter を経由して利用すれば、それらすべての選択肢の中から最適なものを 1 つのスラッグ(識別子)の下で選べます。
一見するとこれはマージン(上乗せ価格)に見えるかもしれませんが、実際はそうではありません。私たちはプロバイダーの価格に上乗せをしていません。カタログに表示されている価格がそのままお客様のお支払い金額です。入力価格が 4 倍も違うのは、同じモデル重みを実行するコスト自体にその差があるからです。そのため、「DeepSeek は直接接続したほうが安いのか?」という問いに対する答えは一つではありません。それは、比較対象とするプロバイダーによって全く異なるのです。
OpenRouter が多数のプロバイダーを 1 つの信頼できるエンドポイントに変える
デフォルトでは、ルーティング層は過去 30 秒間に大きな障害が発生したプロバイダーの優先度を下げ、安定しているプロバイダーには価格の逆二乗を重み付けとして適用し、それ以外はフォールバックとして残します(詳細な仕組みについては プロバイダー選択ドキュメント を参照してください)。DeepSeek プロバイダーのパフォーマンスが低下すると、リクエストは自動的に他のプロバイダーへ切り替わり、ユーザーにはその変化は感知されません。
リクエスト処理中にプロバイダーが障害を起こした場合、2 つの対応が行われます。1 つ目はルーティング層がフォールバック先のプロバイダーで再試行を行うこと、2 つ目は ゼロ完了保険 の機能により、レスポンスにエラーが発生したり出力トークン数がゼロになったりした場合でも課金が行われないことです。
DeepSeek プロバイダーのソート、上限設定、固定
より細かな制御が必要な場合は、プロバイダーオブジェクトを使って 1 つの呼び出しで速度、コスト、ホスト選択を調整できます:
| 制御項目 | DeepSeek 呼び出しでの動作 |
|---|---|
sort: 'throughput' / :nitro | 最速のプロバイダーへルーティング。「DeepSeek が遅い」という問題を解決します。 |
sort: 'price' / :floor | モデルに対して最も安価なプロバイダーへルーティングします。 |
max_price | コストの硬性上限を設定。超過する場合はリクエストを失敗させ、無駄遣いを防ぎます。 |
order / only / ignore | 特定の DeepSeek プロバイダーを強制指定、制限、または除外します。 |
quantizations | 量子化が不適切なエンドポイントをフィルタリング。品質に関する不満を解消します。 |
以下は、速度を優先しつつも過剰なコストを支払わないよう設定した DeepSeek の呼び出し例です。max_price の値はプレースホルダーとして扱っており、本番環境にデプロイする前には必ずライブモデルページから最新の価格情報を取得してください。
from openrouter import OpenRouter
client = OpenRouter()
res = client.chat.send(
model="deepseek/deepseek-v4-pro",
messages=[{"role": "user", "content": "Write a SQL query to find duplicate rows."}],
provider={"sort": "throughput", "max_price": {"prompt": 1, "completion": 2}},
)
import { OpenRouter } from '@openrouter/sdk';
const openRouter = new OpenRouter({ apiKey: process.env.OPENROUTER_API_KEY });
const res = await openRouter.chat.send({
model: 'deepseek/deepseek-v4-pro',
messages: [{ role: 'user', content: 'Write a SQL query to find duplicate rows.' }],
provider: { sort: 'throughput', max_price: { prompt: 1, completion: 2 } },
});
このリクエストは、DeepSeek V4 Pro を利用可能なプロバイダーの中で最もスループットが高いものから提供されます。ただし、トークンあたりの価格が設定した上限を超えると実行されません。
order(注文順)、only(絞り込み)、ignore(除外)、quantizations(量子化)も同様のパターンで指定できます。例えば、特定の量子化版を実行する特定のプロバイダーを固定するには、provider: { only: ['baidu'], quantizations: ['fp8'] } のように記述します。
コスト制御に関する詳細は、コスト管理ガイドをご覧ください。ここではコスト制御フィールドについてより深く解説しています。
スティッキー・ルーティング、フォールバック、Fusion で単一モデルの性能をさらに引き出す
ソート(Sort)、上限設定(Cap)、固定(Pin)は、単一のリクエストにおける課題の多くを解決します。しかし、複数回のやり取りを行うエージェントにはこれだけでは不十分な場合があります。そこで役立つのが、スティッキー・ルーティング、フォールバック、Fusion の 3 つの機能です。
これらは積み重ねて利用でき、それぞれのワークロードが実際に必要とする場合にのみ追加してください。

多回対話型エージェント向けのステイキー・ルーティング
ステイキー・ルーティング(Sticky routing)は、会話中のプロバイダーを固定する機能です。これにより、DeepSeek エージェントがセッション中にホストを飛び移ることを防ぎます。
session_id を指定しない場合、セッションの開始メッセージをハッシュ化して識別子を生成し、キャッシュヒットを検知した時点でピン留めが有効になります。一方、session_id(ボディのトップレベルフィールド、または x-session-id ヘッダー)を渡すことで、最初の成功したリクエスト時点で即座にピン留めを開始できます。
もし固定されたプロバイダーが利用不可になった場合、リクエストは自動的に次善のプロバイダーへフォールバックします。詳細な動作原理については、ステイキー・ルーティングのドキュメント をご確認ください。
V4 Pro で長時間のリファクタリングを行うコーディングエージェントは、セッション初回から最終ターンまで同じプロバイダーに固定できます。ツール使用ループにおいて、各ターンで高速なプロバイダーと低速なプロバイダーを行き来すると、レイテンシが不安定になるだけでなく、最悪の場合はターンごとの動作が一貫しなくなる恐れがあります。
OpenRouter のすべてのルーティングにおける「ステイキー」機能の詳細は、ルーターガイド をご覧ください。
DeepSeek の長文対話において、単一プロバイダの途中での障害から守るために「フォールバック配列」が機能します。例えば、サポートボットが 5 つの手順(顧客情報の検索→注文確認→返信草案作成→ポリシーチェック→送信)をループするケースを考えてみましょう。もしその会話を担当しているプロバイダが手順 3 で応答を返さなければ、ループ全体が破綻してしまいます。これが、r/openrouter で報告されている「単一プロバイダ経由での大規模なツール使用対話で persistent な 400 エラーが発生する」という問題の典型的な形です。
この課題には 2 つの異なるアプローチがあります。まず models はモデルのスラッグを順序付きで配列に格納したもので、OpenRouter がプライマリモデルを完全に利用できない場合に、次のモデルへ自動的にフォールバックします。一方、provider.order と allow_fallbacks: true を組み合わせることで、単一のモデル内におけるプロバイダレベルのフォールバック制御が可能になります。
const res = await openRouter.chat.send({
models: ['deepseek/deepseek-v4-pro', 'deepseek/deepseek-v4-flash'],
messages: [{ role: 'user', content: 'Continue the agent loop.' }],
});
この呼び出しでは、まず DeepSeek V4 Pro が試され、プライマリ経路が失敗した場合は V4 Flash にフォールバックします。これにより、あるプロバイダの調子が悪い日でも、処理を継続できます。
誤りが高価になる場合の融合
Fusion は、複数のモデルと評価用 AI(ジャッジ)を組み合わせることで、難易度の高い質問に対してより厳密な処理を行います。デフォルトの 3 モデル構成では、単一の完了処理に比べてコストが約 4〜5 倍になるため、これは例外ケースであり標準的な運用ではありません。チャット返信や要約エンドポイントであれば、通常は不要です。ただし、研究、批判的検討、あるいは DeepSeek のコストメリットを活かしながら、難問に対する回答の確実性を高めたい高リスクな比較タスクにおいては、DeepSeek とジャッジを組み合わせたパネル構成がその追加コストに見合う価値があります。ただし、本当に難しいサブタスクに限定して利用することが重要です。
DeepSeek に直接接続すべきケースとルーティングすべきケース
Reddit でコミュニティから寄せられている不満には、率直な回答が必要です。「OpenRouter を介さずに DeepSeek を使うべきだ」という投稿や、「DeepSeek の料金は本当に安いのか」といった質問が散見されます。これらはどちらも正当な疑問です。
トラフィックが安定しており、単一プロバイダーに依存し、レイテンシ(遅延)を許容できる環境であれば、直接接続の方がシンプルです。その場合、中間のホップによる遅延と 5.5% の従量課金手数料がかかる OpenRouter を経由するよりも、直接接続の方がコスト的にもパフォーマンス的にも優れた選択肢となり得ます。
- DeepSeek に直接接続すべきケース
- 単一プロバイダーに対して安定したボリュームのトラフィックがあり、最安価格(フロアプライス)を確保したい場合
- トラフィックが単純で、1 回のやり取りで完結し、レイテンシの影響を受けにくい場合
- OpenRouter を経由してルーティングすべきケース
- 複数のプロバイダー間でフェイルオーバー(冗長化)を実現し、単一のスラッグ(識別子)で管理したい場合
- エージェントや長時間続くツール利用を伴う会話など、接続が切れることが許されない複雑な処理を実行する場合
モデルやバージョンを切り替える必要はありません。DeepSeek のバージョンを入れ替えたり、別のモデルにフォールバックしたりしたい場合は、単に文字列を変更するだけで済みます。
プラットフォーム手数料を避けたい場合もあります。プロバイダーの品質はばらつきがあり、信頼できるホストを固定したいというニーズに応えます。
各課題には具体的な解決策が用意されています。「遅い」という不満は、ルーティングのデフォルト設定によるものであり、上限ではありません。sort: 'throughput' を設定するか、:nitro サフィックスを追加することで改善できます。「品質にばらつきがある」のは事実で、主な原因は量子化(quantization)です。quantizations フィールドでフィルタリングするか、テスト済みのプロバイダーを order や only で固定してください。「長時間実行時に 400 エラーが返ってくる」場合は、特定のプロバイダーに問題がある可能性が高いです。単一のホストに依存するのではなく、フォールバック配列を追加して対応しましょう。
ルーティングにはコストがかかります。プロバイダー料金のマークアップなし価格に加え、利用量に応じた 5.5% のプラットフォーム手数料が発生します。その代わり、すべての DeepSeek プロバイダー間でのフェイルオーバー機能、成功時のみ課金される請求システム、プロバイダーの固定機能、そして統合コードを変更せずに DeepSeek バージョンを切り替える機能が得られます。単一のプロバイダーで安定したトラフィックを扱う場合、この 5.5% はコストに見合わないかもしれません。しかし、エージェント型アプリケーションや、絶対にダウンタイムを許さない用途においては、その価値は十分に発揮されます。
DeepSeek モデルをタスクに最適化する
必ず JSON 形式で返してください。translation フィールドのみ。他のフィールドは一切追加しないこと — 余計なフィールドを書こうとして本文がトークン上限で打ち切られる事故を防ぐため:
まずはモデルのファミリーから選びましょう。汎用的なエージェント作業には V4 を、明確なステップバイステップ推論が必要なら R1 を、コストが深さよりも優先される場合は軽量版(distilled)モデルを選びます。その後、ブログ記事やこのガイドに含まれるような古い情報に頼らず、必ずライブの DeepSeek ハブ で現在のスラッグを確認してください。フラッグシップモデルは頻繁に更新され、一度決まった推奨事項も数週間で陳腐化してしまうからです。
| ファミリー | 用途 | 例(スラッグ)(最新はハブで確認) |
|---|---|---|
| Chat / V3 ライン | 汎用チャットと生成 | deepseek/deepseek-chat, deepseek/deepseek-chat-v3-0324 |
| V3.1 / V3.2 ライン | ハイブリッド推論+ツール使用、効率重視 | deepseek/deepseek-chat-v3.1, deepseek/deepseek-v3.2 |
| R1 推論ライン | 明示的なステップバイステップ推論 | deepseek/deepseek-r1, deepseek/deepseek-r1-0528 |
| 軽量小モデル | コスト効率が高く、予算が限られる場合に最適 | deepseek/deepseek-r1-distill-llama-70b |
| V4 ライン | 最新の大規模 MoE モデル、100 万トークンのコンテキスト | deepseek/deepseek-v4-pro, deepseek/deepseek-v4-flash |
もう一つ覚えておくと便利な機能があります(ただし、モデルページで最新状況を確認してください)。執筆時点では V3.2 と V4 モデルは、オプションの推論トグルを提供しています。reasoning: { enabled: true } を指定すると思考モードが有効になり、出力に推論ステップが含まれます。一方、同じスラッグでもより高速で安価な非推論応答が必要な場合は、この設定をオフにします。また、V4 モデルでは最大限の推論性能を得るために reasoning_effort を xhigh まで上げることができます。
OpenRouter を通じて 5 分で DeepSeek を呼び出す
OpenRouter のアカウントを持っていない場合は、ダッシュボードからサインアップして API キーを作成してください。OpenRouter API は、すでに慣れ親しんでいる OpenAI Chat Completions 形式に対応しています(クイックスタート参照)。また、開発環境に合わせて Anthropic の Messages および Responses API 形式も利用可能です。
from openrouter import OpenRouter
client = OpenRouter()
res = client.chat.send(
model="deepseek/deepseek-v4-pro",
messages=[{"role": "user", "content": "Explain MoE routing in two sentences."}],
)import { OpenRouter } from '@openrouter/sdk';
const openRouter = new OpenRouter({ apiKey: process.env.OPENROUTER_API_KEY });
const res = await openRouter.chat.send({
model: 'deepseek/deepseek-v4-pro',
messages: [{ role: 'user', content: 'Explain MoE routing in two sentences.' }],
});上記は、デフォルトの負荷分散機能が有効になった状態での DeepSeek 呼び出し例です。ルーティング設定を追加する前に、すでにプロバイダーのフェイルオーバー(障害時切り替え)が機能しています。ハブ にある任意のモデルのスラッグに置き換えることも可能です。本番環境での利用ではなく、無料で DeepSeek を試したい場合は、無料 LLM API 比較ガイド でその手順を解説しています。
よくある質問
OpenRouter を通じて DeepSeek にアクセスする方が安いのか、直接アクセスする方が安いのか?
どのプロバイダーと比較するかによって答えは変わりますが、OpenRouter はプロバイダーの価格に上乗せをしない方針です。カタログ表示価格はそのまま請求額となり、従量課金モデルではこれに 5.5% のプラットフォーム利用料が加算されます。ルーティング機能により、DeepSeek の各プロバイダー間でフェイルオーバー(冗長化)が可能になり、バージョンの切り替えや「成功時のみ課金」に対応できるため、アジェンシーワークや稼働率を重視する用途では、この付加価値が利用料を上回るメリットとなります。
OpenRouter を経由して DeepSeek を使うべきか、直接接続すべきか
OpenRouter を経由するのが基本です。ただし、トラフィックが常に単一の安定したプロバイダーに集中し、遅延許容度が高い場合に限っては、直接接続の方がシンプルでトークンあたりのコストを抑えられる可能性があります。
一方、以下のようなケースでは OpenRouter の利用が推奨されます:
- 複数プロバイダー間での稼働率確保
- 品質のばらつきに対応するための特定プロバイダーへの固定(ピン留め)
- 長時間のツール使用実行におけるフォールバック機能
- 統合コードを書き換えずに DeepSeek のバージョンを切り替えられる柔軟性
プロバイダー間で DeepSeek の品質は一定か?
プロバイダーによって品質にはばらつきがあります。これは主に、ホスト間での量子化(quantization)の違いがモデルの応答に影響を与えるためです。
利用時には以下の対応をお勧めします:
quantizationsフィールドを活用して、量子化が不適切なエンドポイントを除外する- 事前にテスト済みのプロバイダーに固定するには「ピン留め」機能を利用する
- 本格的な導入前に、モデルページ に掲載されている各プロバイダーごとのベンチマーク結果を比較検討する
OpenRouter で DeepSeek の信頼性を高めるには?
デフォルトのロードバランシングは、過去 30 秒間に重大な障害が発生したプロバイダーを自動的に優先順位から外します。その上で、フォールバック配列を追加し、信頼できるプロバイダーを順序指定で固定し、セッション ID を渡すことで、複数回の対話処理に sticky ルーティング(定着ルーティング)を実現できます。詳細は sticky routing docs をご覧ください。
OpenRouter で DeepSeek が遅い、またはエラーになる理由
これは 2 つの異なる問題であり、それぞれ解決策も異なります。動作が遅い場合は、モデル自体の問題ではなくプロバイダー選択が原因であるケースがほとんどです。まずは「sort: 'throughput'」を指定するか、
まずはモデルのファミリーから選びましょう。汎用的な利用には「chat/V3」、推論タスクには「R1」、コストを抑えたい場合は「distills」シリーズ、長いコンテキストを扱う必要があるなら「V シリーズ」が適しています。バージョン番号はファミリー名よりも頻繁に更新されるため注意が必要です。
具体的なモデルを選ぶ際は、DeepSeek ハブ で最新のコンテキストウィンドウサイズ、価格、リリース時期を確認し、さらに ランキング を参照して、各ドメインで実際にどのバージョンが利用されているかを確認することをお勧めします。
原文を表示
DeepSeek is the most-used model author on OpenRouter. As of July 13, 2026, it ranks #1 by token share in the live rankings. So the question developers keep asking on Reddit is a fair one: route DeepSeek through OpenRouter, or hit DeepSeek’s API directly?
“DeepSeek” is one model served by 16 different companies, at prices that vary by about 4x and throughput ranging from 4 to 57 tokens per second, per the live V4 Pro provider page. We built OpenRouter’s routing layer to turn that messy provider field into a single slug that stays up, stays affordable, and stays fast, with controls you can reach for when you want to pin a specific provider yourself. Going direct is sometimes the right call, and we’ll tell you exactly when.
Tl;dr
- DeepSeek leads OpenRouter usage: the #1 author by token share in the live rankings (checked July 13, 2026), with 2 models in the overall top 10 and 2 in the tool-calls top 10.
- A single DeepSeek model runs on many providers at once. On the live V4 Pro page, input price spans roughly 4x across providers and throughput ranges from 4 to 57 tokens per second.
- We don’t mark up provider pricing. The catalog price is what you pay, so that spread is real provider economics, not our margin.
- Default load balancing deprioritizes any provider that had a significant outage in the last 30 seconds and is biased toward cheaper providers, weighted by the inverse square of price. You can sort by speed or price, cap spend, and include or exclude providers with the sort, max_price, and order/only/ignore fields on the provider object.
- Sticky routing keeps multi-turn conversations from bouncing between hosts, fallbacks protect long tool-use runs, and Fusion improves reliability on hard questions when being wrong costs more than the extra tokens.
- All of this costs a 5.5% platform fee on pay-as-you-go. For steady, single-provider traffic, going direct can edge it out. Routing buys failover, provider pinning, and version-switching by changing a string.
DeepSeek is the most-used model on OpenRouter
Start with the scale, since it explains everything that follows. DeepSeek is the largest source of tokens on OpenRouter: the #1 model author by token share, with two of its models in the overall top 10. When one model carries that much production traffic, the gap between a good provider and a bad one surfaces quickly, often in error logs and often at an inconvenient time.
DeepSeek is a family of open-weight Mixture-of-Experts models built for computational efficiency with strong reasoning and tool-use performance. The newer V4 line adds a hybrid attention system, which keeps inference efficient as context windows grow to 1M tokens. The lineup on OpenRouter spans the chat/V3 line, the R1 reasoning line, a set of distilled small models, and the newer V-series. The current flagship changes often enough that we’d rather not pin a version number here; check the live DeepSeek hub instead of trusting whatever version a blog post mentioned last month. Right now, the hub lists 22 DeepSeek models.
Here’s the breakdown on the live rankings as of July 13, 2026:
Usage domainDeepSeek’s standing
Author token share#1 of all authors, 16.7% of tokens
Top 10 models by usageV4 Flash at #3 and V4 Pro at #6
Tool calls2 DeepSeek models in the top 10, V4 Flash at #3 and V4 Pro at #6
”DeepSeek” is one model served by many providers
When you call a DeepSeek model on OpenRouter, 16 different companies can serve it, and they are not interchangeable. As of July 13, 2026, DeepSeek V4 Pro runs on 16 providers through OpenRouter, each with its own price, uptime, and speed. The tradeoffs don’t line up neatly: right now the cheapest provider also has the best uptime, and the slowest provider still charges over 3x the cheapest. Which row you land on is most of the direct-versus-router question.

Here’s the live V4 Pro provider table, trimmed to the high and low ends. Prices move constantly, so click through for current numbers before you build anything on them.
ProviderInput price /MUptimeThroughput
DeepSeek (cheapest input, highest uptime)$0.435/M99.92%45 tps
Baseten (priciest input, fastest)$1.74/M99.45%57 tps
Together (lowest uptime)$1.74/M97.44%46 tps
DigitalOcean (slowest)$1.392/M99.64%4 tps
Input price ranges from about $0.44/M to $1.74/M for the same model weights, throughput from 4 to 57 tokens per second, and uptime from about 97% to nearly 100%. Go direct to one DeepSeek provider, and you’re picking one row of that table and living with it, good or bad. Route through OpenRouter, and you’re choosing among all of them under a single slug.
That spread can look like markup at first glance, but it isn’t. We don’t mark up provider pricing: the catalog price you see is what you pay. The 4x input-price spread is the actual difference in what those providers charge to run the same weights. That’s also why “is DeepSeek cheaper direct?” doesn’t have one answer: it depends entirely on which provider you’d be comparing against.
OpenRouter turns many providers into one reliable endpoint
By default, our routing layer deprioritizes any provider that has had a significant outage in the last 30 seconds, weights the stable ones by the inverse square of their price, and keeps the rest as fallbacks (see the provider-selection docs for the full mechanics). When a DeepSeek provider degrades, your request reroutes to another provider without you noticing.
Two separate things happen when a provider fails mid-request: routing retries through a fallback provider, and Zero Completion Insurance means you’re not charged when a response errors or comes back with zero output tokens.
Sort, cap, and pin DeepSeek providers
When you need tighter control, the provider object lets you tune speed, cost, and host selection in a single call:
ControlWhat it does on a DeepSeek call
sort: 'throughput' / :nitroRoutes to the fastest provider. Fixes “DeepSeek is slow.”
sort: 'price' / :floorRoutes to the cheapest provider for the model.
max_priceHard cost cap. Fails the request rather than overspending.
order / only / ignoreForce, restrict, or exclude specific DeepSeek providers.
quantizationsFilters out poorly-quantized endpoints. Fixes quality complaints.
Here’s a DeepSeek call that asks for speed but refuses to overpay for it. Treat the max_price values as placeholders; pull current numbers from the live model page before you ship.
from openrouter import OpenRouter
client = OpenRouter()
res = client.chat.send(
model="deepseek/deepseek-v4-pro",
messages=[{"role": "user", "content": "Write a SQL query to find duplicate rows."}],
provider={"sort": "throughput", "max_price": {"prompt": 1, "completion": 2}},
)import { OpenRouter } from '@openrouter/sdk';
const openRouter = new OpenRouter({ apiKey: process.env.OPENROUTER_API_KEY });
const res = await openRouter.chat.send({
model: 'deepseek/deepseek-v4-pro',
messages: [{ role: 'user', content: 'Write a SQL query to find duplicate rows.' }],
provider: { sort: 'throughput', max_price: { prompt: 1, completion: 2 } },
});That request serves DeepSeek V4 Pro from the fastest available provider, but won’t run at all if the price per token clears the cap you set. order, only, ignore, and quantizations follow the same pattern, for example provider: { only: ['baidu'], quantizations: ['fp8'] } to pin a specific provider running a specific quantization. Our guide on provider routing for cost walks through the cost-control fields in more depth.
Sticky routing, fallbacks, and Fusion lift a single model further
Sort, cap, and pin solve most single-request problems. Multi-turn agents need a bit more. Three additive layers cover them: sticky routing, fallbacks, and Fusion. They stack, and you add each one only when the workload actually demands it.

Sticky routing for multi-turn agents
Sticky routing pins the provider serving a conversation, so a DeepSeek agent doesn’t bounce between hosts mid-session. Without a session_id, we key the session by hashing the conversation’s opening messages, and the pin activates once a cache hit is detected. Pass a session_id (a top-level body field, or the x-session-id header) and the pin activates on the first successful request instead. If the pinned provider becomes unavailable, the request falls back to the next-best provider (full mechanics in the sticky routing docs).
A coding agent running a long refactor on V4 Pro can stay pinned to the same provider from the first turn through the end of the session. A tool-use loop that jumps from a fast provider to a slow one between turns gives you inconsistent latency and, worse, inconsistent behavior turn to turn. Our router guide covers stickiness across all of OpenRouter’s routers.
Fallbacks for long tool-use runs
A fallback array protects a long DeepSeek conversation from a single provider’s mid-run failure. Picture a support bot that runs a 5-step tool-use loop: look up the customer, check the order, draft a reply, run a policy check, then send. If the provider serving that conversation drops a response at step 3, the whole loop breaks. That’s the exact shape of a complaint we’ve seen on r/openrouter: persistent 400 errors on large tool-use conversations through one provider.
Two different fields handle this. models is an ordered array of model slugs; OpenRouter falls back to the next model if the primary is unavailable entirely. provider.order combined with allow_fallbacks: true governs provider-level fallbacks within a single model.
const res = await openRouter.chat.send({
models: ['deepseek/deepseek-v4-pro', 'deepseek/deepseek-v4-flash'],
messages: [{ role: 'user', content: 'Continue the agent loop.' }],
});That call tries DeepSeek V4 Pro first and falls back to V4 Flash if the primary path fails, so one provider’s bad day doesn’t end your run.
Fusion when being wrong is expensive
Fusion runs a panel of models plus a judge to process harder questions with greater scrutiny. With its default 3-model panel, it runs at roughly 4 to 5 times the cost of a single completion, making it an exception, not the default. For a chat reply or a summarization endpoint, it’s usually unnecessary. For research, critique, or a high-stakes comparison task where you want DeepSeek’s cost profile but more confidence on the hard question, a panel that includes DeepSeek alongside a judge can be worth the multiple. Keep it scoped to the genuinely hard subtask.
When to call DeepSeek direct and when to route
The real complaints we see from the community on Reddit deserve straight answers. Developers have posted things like “Don’t use DeepSeek through OpenRouter” due to latency and cost, and have asked outright whether DeepSeek’s prices are lower. Both are fair questions. If your traffic is steady, single-provider, and latency-tolerant, going direct is simpler, and the extra hop plus the 5.5% pay-as-you-go fee can genuinely make it the cleaner choice.
Go direct to DeepSeek whenRoute through OpenRouter when
You hit one provider at steady volume and want the floor priceYou want failover across many providers behind one slug
Your traffic is simple, single-turn, latency-tolerantYou run agents or long tool-use conversations that can’t drop
You don’t need to switch models or versionsYou want to swap DeepSeek versions, or fall back to another model, by changing a string
You’d rather avoid any platform feeProvider quality varies and you want to pin a known-good host
Each complaint maps to a specific fix. “It’s slow” is a routing default, not a ceiling: set sort: 'throughput' or add the :nitro suffix. “Quality varies” is real, and the usual cause is quantization: filter with the quantizations field, or pin a provider you’ve tested with order or only. “It returns 400s on long runs” usually points to one provider in trouble: add a fallback array rather than relying on a single host.
What routing costs: a 5.5% pay-as-you-go platform fee on top of the no-markup provider rate. In exchange, you get failover across every DeepSeek provider, pay-only-for-success billing, provider pinning, and the ability to switch DeepSeek versions without touching your integration. For steady single-provider traffic, that 5.5% might not pay for itself. For anything agentic, or anything that genuinely can’t go down, it usually does.
Match the DeepSeek model to the job
Choose by family first: V4 for general agentic work, R1 for explicit step-by-step reasoning, and a distilled model when cost matters more than depth. Then confirm the current slug on the live DeepSeek hub rather than trusting a model name from a blog post, including this one, because the flagship moves and a frozen recommendation goes stale within weeks.
FamilyWhat it’s forExample slug (check the hub for current)
Chat / V3 lineGeneral-purpose chat and generationdeepseek/deepseek-chat, deepseek/deepseek-chat-v3-0324
V3.1 / V3.2 lineHybrid reasoning + tool use, efficiency-tuneddeepseek/deepseek-chat-v3.1, deepseek/deepseek-v3.2
R1 reasoning lineExplicit step-by-step reasoningdeepseek/deepseek-r1, deepseek/deepseek-r1-0528
Distilled small modelsCheap, fast, fit smaller budgetsdeepseek/deepseek-r1-distill-llama-70b
V4 lineNewest large MoE, 1M-token contextdeepseek/deepseek-v4-pro, deepseek/deepseek-v4-flash
One capability worth remembering, though you should confirm it’s still current on the model page: as of this writing, the V3.2 and V4 models expose an optional reasoning toggle. Pass reasoning: { enabled: true } to turn on thinking mode and include the reasoning steps in the output, or leave it off for faster, cheaper non-reasoning responses on the same slug. The V4 models also accept reasoning_effort up to xhigh for maximum reasoning.
Call DeepSeek through OpenRouter in 5 minutes
If you don’t already have an OpenRouter account, sign up and create an API key from your dashboard. The OpenRouter API speaks the same OpenAI Chat Completions format you already know (see the quickstart), plus the Anthropic Messages and Responses API formats if that’s closer to your stack.
from openrouter import OpenRouter
client = OpenRouter()
res = client.chat.send(
model="deepseek/deepseek-v4-pro",
messages=[{"role": "user", "content": "Explain MoE routing in two sentences."}],
)import { OpenRouter } from '@openrouter/sdk';
const openRouter = new OpenRouter({ apiKey: process.env.OPENROUTER_API_KEY });
const res = await openRouter.chat.send({
model: 'deepseek/deepseek-v4-pro',
messages: [{ role: 'user', content: 'Explain MoE routing in two sentences.' }],
});That’s a working DeepSeek call with default load balancing already active, meaning you’ve got provider failover before you’ve added a single routing field. Swap the slug for any model on the hub. If your goal is free DeepSeek access rather than production traffic, the free-tier path is covered in our free LLM APIs guide.
Frequently asked questions
Is DeepSeek cheaper direct or through OpenRouter?
It depends on which provider you compare us to, because we don’t mark up provider pricing. The catalog price is what you pay, plus a 5.5% platform fee on pay-as-you-go. Routing buys failover across every DeepSeek provider, version-switching, and pay-only-for-success billing, and that resilience usually outweighs the fee for agentic or uptime-sensitive workloads.
Should I use DeepSeek through OpenRouter or directly?
Route through OpenRouter unless your traffic only ever hits one steady, latency-tolerant provider, in which case going direct is simpler and can be cheaper per token. Route through OpenRouter when you want cross-provider uptime, provider pinning when quality varies, fallbacks for long tool-use runs, or the ability to switch DeepSeek versions without rewriting your integration.
Is DeepSeek quality consistent across providers?
Quality varies by provider, mainly because quantization differences across hosts can change the model’s responses. Use the quantizations field to filter out poorly quantized endpoints, order or only to pin a provider you’ve tested, and the per-provider benchmarks on the model page to compare before you commit.
How do I make DeepSeek more reliable on OpenRouter?
Default load balancing already deprioritizes any provider with a significant outage in the last 30 seconds. From there, add a fallback array, pin a known-good provider with order, and pass a session_id for sticky multi-turn conversations, per the sticky routing docs.
Why is DeepSeek slow or erroring on OpenRouter?
Two different problems with two different fixes. Slowness usually points to provider selection, not the model itself: start with sort: 'throughput' or the :nitro suffix. Errors on long tool-use runs are a separate issue: add a fallback array so the request can move to another provider instead of stopping on one that just failed.
Is DeepSeek free on OpenRouter?
Yes, with a caveat: “free” means specific free models within the DeepSeek lineup, typically marked with a :free slug suffix, available with rate limits, not unlimited usage of every DeepSeek model. For the full list of free options and current limits, see free LLM APIs.
Which DeepSeek version should I use?
Choose by family first: chat/V3 for general use, R1 for reasoning, distills for cost, the V-series for long context. Version numbers change faster than the families do. Then pick the specific current slug from the live DeepSeek hub based on context window, price, and recency, and use the rankings to see which version people actually use for each domain.
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み