ドキュメント

ドキュメント

TypingMind

TypingMindにはカスタムモデル用のベースURLフィールドがありません。モデルごとに個別のエントリを作成し、完全なエンドポイントルート、モデルID、コンテキスト長、および自分で入力するヘッダーとしてキーを指定します。以下ではKunavo用のエントリと、1か月前には動かなかったものが現在ブラウザーから動作する理由を説明します。

Models → Add custom model:完全なEndpoint URL https://api.kunavo.com/v1/chat/completions、Bearerとキーを含むAuthorizationヘッダー、Model ID、コンテキスト長を指定 — モデルごとに1エントリを作成し、ブラウザから直接呼び出します。

typingmind.com — Add Custom Model
Models  →  Add custom model  →  Create Manually

Name                    Kunavo · Claude Sonnet 5
Model ID                claude-sonnet-5
Context Length          1000000

Authentication tab
  API Type              OpenAI Chat Completions API
  Endpoint URL          https://api.kunavo.com/v1/chat/completions
  Authentication Type   API Key via HTTP Header
    Header Key          Authorization
    Header Value        Bearer sk-kn-...

Capabilities tab        tick only what you have checked (see below)
Request Options tab     leave "Route requests via TypingMind Cloud" off

                        → Test & Save
Endpoint URLにはベースURLではなく、完全なルートを指定します。OpenAI Chat Completions APIタイプの場合はhttps://api.kunavo.com/v1/chat/completionsです。TypingMindは何も追加しません。独自の入力例でもhttps://api.minimax.io/v1/chat/completionsなどの完全なルートを貼り付けています。そのため、https://api.kunavo.com/v1だけを指定すると、チャットリクエストは存在しないパスに送信されます。
ブラウザーから実行でき、現在はKunavoでも動作します。TypingMindのドキュメントによると、リクエストは「ブラウザーから直接」送信されるため、エンドポイント側でページのオリジンを許可する必要があります。KunavoのAPIは2026年9月29日にCORSヘッダーを追加しました。2026年10月1日、typingmind.comのページ自体から送信したリクエストはaccess-control-allow-origin: *と読み取り可能な応答を返しました。/v1/chat/completions、/v1/messages、/v1/modelsのいずれからも応答がありました。このエンドポイントでは、Route requests via TypingMind Cloudオプションは必要ありません。
テスト済みの内容と未テストの内容。上記のフォームラベルは2026年10月1日に実際のアプリで確認しました。また、意図的に無効なキーを使い、そのページからクロスオリジンリクエストを送信しました。これにより確認できたのは、ブラウザーがTypingMindからKunavoへの接続を許可し、応答を読み取れることです。TypingMindからKunavoへ、実際のキーを使った補完、ストリーム、ツール呼び出しは実行していません。また、「Test & Save」ボタンも押していません。エンドツーエンドの最初の確認は、ご自身で「Test & Save」を実行したときになります。
まだキーをお持ちですか?Kunavoアカウントを作成し、キーを作成します(sk-kn-で始まります)。$10からクレジットを追加すると、呼び出しはその残高から支払われ、失敗した呼び出しは課金されません。ダッシュボードを開くと、TypingMind設定が表示されます。

手順

  1. /app/keys でキーを作成してコピーします。キーは一度だけ表示されます。
  2. TypingMindで、左側のサイドバーにあるModelsを開き、Add custom modelをクリックします。Create Manuallyを選択したままにしてください。「Import JSON」と「Import OpenRouter」は別のソースから取り込むための項目です。
  3. Nameには任意の名前を、Model IDにはGET /v1/modelsに記載されているIDと完全に同じものを入力します(例:claude-sonnet-5)。次にContext Lengthを設定します。フォームには128000があらかじめ入力されています。TypingMindはこの値を使って送信する履歴の量を決めるため、モデル一覧ページを確認して実際のコンテキストウィンドウを設定してください。
  4. Authenticationタブで、API Typeを「OpenAI Chat Completions API」に設定し、完全なEndpoint URLを貼り付けます。Authentication Typeには「API Key via HTTP Header」を設定し、Header KeyにAuthorizationを、Header ValueにBearer sk-kn-...を入力します。これはBearerという語、半角スペース、キーの順です。
  5. Capabilitiesでは、機能を手動で選ぶか、Auto check capabilities on saveを有効にしたままにします。フォームによると、保存時に「いくつかのテストリクエスト」が送信され、少量のトークンが課金されます。任意で、下の表にある100万トークンあたりの料金をPricingに入力すると、TypingMindのコスト表示を実際の請求額に合わせられます。最後にTest & Saveをクリックします。
  6. モデルごとに繰り返してください。カスタムエンドポイントにプロバイダーレベルの設定はありません。Claude Sonnet、Claude Haiku、GPTモデルは、同じEndpoint URLとヘッダーを使う3つの個別のカスタムモデルです。

TypingMindのモデルドキュメントで2026年10月1日に確認しました。サードパーティの設定は変更されます。ここに記載されたフィールド名が表示内容と一致しなくなった場合は、このページではなく、そのページを正しい情報源としてください。

これが短い概要です。完全な手順 — モデルの選択、実際のセッション費用、失敗するケース — はTypingMindの料金とAPIコストにあります。

クライアントをデバッグする前に確認すること

1回のリクエストで、失敗の原因がエンドポイント、キー、設定ファイルのどれかを特定できます。これがJSONを返すなら、同じベースURLとキーがTypingMindで機能します。

# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
  -H "Authorization: Bearer sk-kn-..."

フィールドに入力するモデルID

すべてのテキストモデルにはモデルIDでアクセスできます。現在の一覧はGET /v1/models、価格付きのカタログはモデルページにあります。料金は100万トークンあたりのUSDで、入力 / 出力の順です。

モデル IDKunavo 入力 / 出力TypingMindでの位置付け
claude-sonnet-5$1.40 / $7.00長時間のチャットやドキュメントに適した日常使いのモデル — コンテキスト長 1000000
claude-haiku-4-5$0.70 / $3.50簡単な質問やタイトル向けの低コストなサブモデル — コンテキスト長 200000
claude-opus-5$3.50 / $17.501回のチャットで難しい推論を慎重に使うモデル — コンテキスト長 1000000
請求は月額料金なしの前払い残高からトークン単位で行われます — 請求を参照してください。繰り返し送られるコンテキスト(エディターやチャットクライアントが送る内容の大半)では、プロンプトキャッシュのほうがモデル選択より請求額を大きく左右します。

その他の3つのAPIタイプ

実際のフォームのAPI Typeドロップダウンには、OpenAI Chat Completions API、OpenAI Responses API、Claude Messages API、Gemini APIがあります。Kunavoが対応しているのは最初の3つです。それぞれのEndpoint URLには、ルートを含む完全なURLが必要です。

  • Claude Messages API — Endpoint URL https://api.kunavo.com/v1/messages。TypingMind独自のClaude形式の例ではx-api-keyヘッダーを使っています。このルートでは、KunavoはそのヘッダーとAuthorization: Bearerのどちらも受け付けます。このルートで利用できるのはClaudeファミリーのIDのみです。
  • OpenAI Responses API — Endpoint URL https://api.kunavo.com/v1/responses。Bearerヘッダーは同じです。TypingMindのドキュメントにはこのタイプの実例がないため、完全なルートを指定する形式は他の3つの例からの推定であり、引用ではありません。
  • Gemini API — このエンドポイントでは利用できません。Google独自のリクエスト形式を必要とするため、代わりにChat CompletionsタイプからGeminiモデルを利用してください。

これはTypingMind APIではありません

「TypingMind API」は通常、チャットインスタンスを管理するTypingMind Teamsインスタンス(custom.typingmind.com)のREST APIを指します。モデルのトークンを販売するものではなく、この設定とは関係ありません。カスタムモデルとは、TypingMindから、ユーザーが提供したキーを使って他社のエンドポイントを呼び出すものです。

請求は別々です

TypingMindのライセンス料金はアプリの利用料です。カスタムモデル経由で送信する各メッセージは、ヘッダー内のキーの所有者によってトークン単位で請求されます。ここでは、前払い残高からKunavoが請求します。ライセンスの各プランと、これらの料金で1か月チャットを利用した場合の費用については、TypingMindの料金とAPIコストで詳しく説明しています。

Test & Saveが失敗する場合

  • 「POST /v1 is the base URL, not an endpoint」を伴う404(またはURLがホスト名で終わっている場合の「Not found: /」)— Endpoint URLにルートがありません。/v1/chat/completions(これらのタイプでは/v1/messagesまたは/v1/responses)で終わる必要があります。2026年10月1日より前は、どちらの場合もHTMLページが返されていました。
  • 「No such endpoint」を伴う404 — たとえば/v1/chat/completionのように、ルートの綴りが間違っています。同じメッセージ内に、Kunavoが提供する最も近いルートが表示されます。
  • 「Not found: /chat/completions. Kunavo's API lives under /v1」を伴う404 — ルートはありますが、/v1がありません。Endpoint URLがhttps://api.kunavo.com/chat/completionsになっています。ルートの前に/v1を追加してください。(2026年10月1日に確認。それ以前は、同じ誤りでHTMLページが返されていました。)
  • 401「Missing or invalid API key」 — ヘッダーが正しくありません。Header KeyはAuthorization、値はBearer で始まる必要があります。または、キーが失効しています。
  • モデルが利用できないというエラー — Model IDの綴りが、GET /v1/modelsに記載されているものと一致していません。IDは小文字で、ハイフン区切りです。
  • ブラウザーのコンソールにネットワークエラーまたはCORSエラーが表示される — Endpoint URLがhttps://api.kunavo.comであり、ウェブサイトのドメインではないことを確認してください。CORSヘッダーを送信するのはAPIホストです。

よくある質問

TypingMindで自分のAPIキーを使ってカスタムモデルを追加するにはどうすればよいですか?

左側のサイドバーでModelsを開き、Add custom modelをクリックしてからCreate Manuallyを選びます。Name、正確なModel ID、Context Lengthを入力します。AuthenticationタブでAPI Typeを選択し、完全なEndpoint URLを貼り付けます。OpenAI互換プロバイダーの場合、URLの末尾は /v1/chat/completions です。Authentication TypeをAPI Key via HTTP Headerに設定し、Header KeyにAuthorization、Header ValueにBearerとキーを続けて入力します。Test & Saveをクリックしてください。これらのラベルは2026年10月1日に実際のアプリで確認したものです。TypingMindの旧ドキュメントでは、同じ手順が少し異なる表現で説明されています。

TypingMindにはベースURLと完全なエンドポイントのどちらを入力すればよいですか?

完全なエンドポイントです。このフィールド名はEndpoint URLです。TypingMindのドキュメントにあるすべての実例では、https://api.minimax.io/v1/chat/completions や、末尾が /anthropic/v1/messages のAzure URLのように、ルート全体を貼り付けています。TypingMindはパスを追加しません。そのため、https://api.kunavo.com/v1 のようなベースURLだけを指定すると、存在しないルートにリクエストが送られ、404が返されます。

TypingMindはブラウザーからKunavoを直接呼び出せますか?

はい。2026年9月29日にKunavoのAPIがCORSヘッダーの送信を開始して以来、可能です。TypingMindはウェブページ自体からモデルリクエストを送るため、エンドポイントがそのページのオリジンを許可する必要があります。2026年10月1日、typingmind.comからKunavoの /v1/chat/completions、/v1/messages、/v1/models に送信したリクエストは、読み取り可能な本文とともに access-control-allow-origin: * を返しました。これらのリクエストでは意図的に無効なキーを使ったため、ブラウザー経由の通信が可能であることは確認できますが、チャット全体が実行されたことを示すものではありません。

TypingMindのプロキシやTypingMind Cloud経由のルーティングは必要ですか?

Kunavoでは不要です。Request OptionsタブにはRoute requests via TypingMind Cloudの切り替え項目があり、フォームではブラウザーのCORS制限を回避するためにTypingMindのサーバー経由でリクエストをルーティングする機能と説明されています。KunavoのAPIはすでにブラウザーからの呼び出しを許可しているため、オフにしておけばブラウザーからエンドポイントへ直接リクエストが送られます。

KunavoはTypingMindでエンドツーエンドのテストを実施しましたか?

有効なキーを使ったテストは実施していません。2026年10月1日に確認したのは、実際のAdd Custom Modelフォームと、typingmind.comのページからKunavoに無効なキーを使って送信したブラウザーリクエストです。このリクエストはCORSヘッダー付きで読み取り可能な応答を返しました。TypingMindからKunavoへの補完、ストリーミング応答、ツール呼び出しは実行しておらず、Test & Saveボタンも押していません。エンドツーエンドの確認には、ご自身でTest & Saveを実行し、最初のメッセージを送信してください。