無料 JEV API はどこで使えますか?
分類先が決まっている n8n のテキスト分類では、HTTP Request ノードから BeatAPI の無料 JEV API を呼び出し、型付き応答を検証して Switch ノードへ渡せます。モデル ID は jev-1.13-free。入力・出力は USD 0 で、残高ゼロでも利用できます。分類名を文章として生成させる必要はありません。
- リクエストの前に、許可する分類名を決めます。
- BeatAPI のキーで
POST https://api.beatapi.io/v1/systemoneを呼び出します。 - 生成文章を解釈せず、応答の
answersを読みます。 - 不正な応答や不確かな判定には確認用の分岐を設けます。
- 元の入力 ID を保持し、アカウントの頻度上限に合わせます。
接続の入口は無料 JEV API のページです。既存の JEV ガイドが扱う幅広い用途とは分け、このチュートリアルでは n8n の分類処理に集中します。
無料 JEV API の接続設定
| 確認項目 | BeatAPI の接続先 |
|---|---|
| キーの作成 |
ダッシュボードの API Keys。グループは auto
|
| 無料モデル | jev-1.13-free |
| エンドポイント | POST https://api.beatapi.io/v1/systemone |
| リクエストの項目 |
model、state、questions
|
| 応答 |
answers 内の名前付き判定 |
| 初回チャージ前 | 成功したリクエストが毎分 1 回まで |
| チャージ後 | 成功したリクエストが毎分最大 10 回。モデルは自動で変わらない |
BeatAPI の無料 JEV API には BeatAPI のキーを使います。他社のキーや追加ノードがそのまま使えるとは限りません。標準の HTTP Request ノードなら、接続設定を一つずつ確認できます。
無料 JEV API は、決められた候補の中から文脈に応じて選ぶ作業に向きます。この例では、分類結果を型付きで受け取り、検証して分岐することが目的です。
無料 JEV API の提供条件を区別する
以下は 2026 年 10 月 2 日の確認内容です。BeatAPI の無料 JEV API は、外部アプリにも使うキーと無料モデルを明示して接続する方式です。他の提供方法とは条件が異なります。
| 接続先 | 公開情報で確認できたこと | 選ぶ際の違い |
|---|---|---|
| TypeSafe への直接接続 | TypeSafe のキー、https://api.typesafe.ai/v1/systemone、jev-latest
|
別の認証情報が必要。入門文書だけでは継続的な無料枠を確認できない |
| OpenRouter の JEV | 入力 100 万トークンあたり USD 0.042、出力 USD 0 | 出力が無料でも呼び出し全体は無料にならない |
| n8n Cloud の期間限定提供 | 対象プランでは 2026 年 10 月 10 日 23:59 UTC まで Gateway のクレジットを消費せず利用可能 | 外部 API キーの提供ではない。期間終了後は通常の料金 |
| Vercel Academy の案内 | 記載された無料期間は 2026 年 9 月 25 日に終了 | 過去のチュートリアルだけでは現在も無料と判断できない |
無料 JEV API の接続先は、再利用できる外部キーが必要か、既存のサービス内で使いたいか、処理量を増やしたいかで選びます。古い無料期間を現在の条件として扱わないでください。
どの解析処理を省けるのか
n8n の利用者による質問には、分類テンプレートで、期待した JSON の代わりに Markdown を含む文章が返り、解析に失敗した例があります。対象はローカルモデルと n8n 1.72.1 です。現在の n8n 全体に同じ不具合があるという証拠ではありません。
「決めた候補から一つ選ぶ」だけなら、アプリは最初から有効な回答を把握できます。JEV はその候補に対する型付きの判定結果を返します。HTTP 応答の JSON 読み取りと項目の検証は引き続き必要です。省けるのは、生成された文章をもう一度 JSON として解釈する工程です。
要約や返信文が必要なら文章生成モデルを使います。完全に一致する条件で決まるなら普通の規則で分岐します。JEV は、候補が限定されているものの、判断には文脈が必要な場面に向きます。
小さな分類処理から始める
この例では更新情報を三つに分けます。
| 分類 ID | 定義 | 次の処理 |
|---|---|---|
feature |
利用者向けの新しい機能 | 機能紹介の下書き待ち |
fix |
既存機能の不具合修正 | 修正情報の下書き待ち |
other |
どちらにも明確に当てはまらない | 通常の確認待ち |
手動開始 → サンプル入力 → HTTP Request → 応答の検証 → Switch
↓
不確かな結果は確認へ
最初は Manual Trigger と架空の 1 件だけを使います。id を note-001、text を Fixed duplicate rows in CSV downloads. にします。本番の受信箱への接続やメール送信は、分類の確認には不要です。
表示名を翻訳しても分類 ID は維持します。ID は分岐条件、保存済み結果、評価用の正解ラベルに使います。
n8n で無料 JEV API を呼び出す
HTTP Request ノードを次のように設定します。
| 設定 | 値 |
|---|---|
| メソッド | POST |
| URL | https://api.beatapi.io/v1/systemone |
| 認証 | Header Auth の認証情報 |
| 認証ヘッダー | Authorization: Bearer YOUR_BEATAPI_KEY |
| 本文形式 | JSON |
| 応答形式 | JSON |
キーは n8n の認証情報として保存し、BeatAPI 側のグループは auto にします。JEV は Chat Completions のモデルではないため、この例では OpenAI Chat Model ノードを使いません。
最初の手動確認には、次の固定本文を送ります。
{
"model": "jev-1.13-free",
"state": {
"id": "note-001",
"text": "Fixed duplicate rows in CSV downloads."
},
"questions": {
"category": {
"type": "choice",
"instructions": "Classify this release note by its main user-visible change.",
"criteria": {
"feature": "Adds a new user-facing capability.",
"fix": "Corrects a failure in an existing capability.",
"other": "Does not clearly fit feature or fix."
}
}
}
}
次に JSON 本文全体を、オブジェクトを返す n8n の式へ変更します。
{{ ({
model: 'jev-1.13-free',
state: { id: $json.id, text: $json.text },
questions: {
category: {
type: 'choice',
instructions: 'Classify this release note by its main user-visible change.',
criteria: {
feature: 'Adds a new user-facing capability.',
fix: 'Corrects a failure in an existing capability.',
other: 'Does not clearly fit feature or fix.'
}
}
}
}) }}
この式では、引用符の中に入力文章を埋め込んで JSON を組み立てません。送信する本文に実際の入力が含まれ、$json.text という文字列のままになっていないことを確認してください。例は公開仕様に基づく構成であり、この記事では実際の n8n 環境で接続を実測していません。
型付き応答を検証してから分岐する
Decisions API のドキュメントでは、質問名をキーにした回答が answers に返ります。Choice では選ばれた値、各候補の確率、確信度を確認します。次の数値は変換処理を確認するための架空の応答で、実測結果ではありません。
{
"answers": {
"category": {
"type": "choice",
"choice": "fix",
"probabilities": { "feature": 0.03, "fix": 0.95, "other": 0.02 },
"confidence": 0.94
}
}
}
Code ノードを「Run Once for Each Item」に設定し、次のように判定を検証します。
const answer = $json.answers?.category;
const allowed = ['feature', 'fix', 'other'];
const labelValid = answer?.type === 'choice' && allowed.includes(answer.choice);
const confidenceValid = Number.isFinite(answer?.confidence)
&& answer.confidence >= 0 && answer.confidence <= 1;
const probabilities = allowed.map(label => answer?.probabilities?.[label]);
const distributionValid = probabilities.every(p => Number.isFinite(p) && p >= 0 && p <= 1)
&& Math.abs(probabilities.reduce((sum, p) => sum + p, 0) - 1) < 0.01;
const valid = labelValid && confidenceValid && distributionValid;
const threshold = 0.8; // Illustrative starting policy; evaluate before operational use.
return { json: {
request_id: $json.id ?? null,
category: valid ? answer.choice : null,
confidence: valid ? answer.confidence : null,
route: valid && answer.confidence >= threshold ? answer.choice : 'review'
} };
HTTP Request ノードで応答全体を出力する設定では、本文が body の下に入る場合があります。実際の出力に合わせて参照先を変更してください。回答が欠けているときに、正常な分類へ置き換えてはいけません。
Switch には feature、fix、other、review の分岐を作り、正規化した route を条件にします。既定の分岐も確認へつなぎます。other は有効な分類、review は不確かさや応答異常のための保留です。
入力との対応と確信度の基準を確認する
応答の id は API のリクエスト識別子で、元の note-001 ではありません。入力 ID は n8n の item linking または Merge ノードを使って別に保持します。再試行や同時分岐がある場合、配列の順番だけで結果と入力を結び付けないでください。
後続処理を自動化する前に、分かりやすい新機能、明らかな修正、複数内容が混ざった文章、情報不足の文章を少量ずつ人が分類します。予測と正解を比較し、確信度が高いのに誤った回答と、不確かさを正しく保留した回答の両方を確認します。
コードの 0.8 は説明用の初期方針であり、現実の正解率 80% を意味しません。自分のデータと誤分類の影響に基づいて調整します。初回は下書き待ちや記録だけに接続してください。
無料提供の呼び出し上限を守る
無料 JEV API は、アカウント全体で初回チャージ前は成功したリクエストが毎分 1 回まで、チャージ後は毎分最大 10 回です。少量の試験から始め、複数の処理が重なる場合はまとめて調整してください。429 ではドキュメントの Retry-After に従い、再試行回数を制限します。
学習や小さな試験には使えますが、大量の受信データを継続的に無料処理できる根拠にはなりません。チャージしても無料モデルは無料のままです。有料利用は jev-1.13 を明示して選びます。
よくある質問
コミュニティの追加ノードを入れずに利用できますか?
この例は標準の HTTP Request、Code、Switch ノードを使います。第三者のノードが BeatAPI のキーや接続先に対応すると仮定していません。
JSON の解析が全部なくなりますか?
いいえ。API 応答の読み取りは必要です。生成文章や Markdown を別の JSON オブジェクトに変換する工程を省きます。
JEV はメールの文章も生成しますか?
このリクエストは分類を選びます。分岐の検証後に、別の文章生成モデルで下書きを作れます。
残高ゼロでも試せますか?
公開された jev-1.13-free の仕様では、auto グループのキーで残高ゼロでも利用できます。無料 JEV API のページで最新条件を確認してください。
確率が最大の分類に必ず流してよいですか?
いいえ。不確かな判定、不正な応答、想定外の入力には確認用の分岐を残します。モデルの確率は、重大な操作を許可するものではありません。
過去の解析エラーは現在の n8n の不具合を証明しますか?
いいえ。過去の利用者の問題が設計のきっかけです。導入前に現在の n8n と実際の処理で確認してください。
著者は BeatAPI の開発に関わっています。例は公開 API 仕様に基づく構成です。JEV の応答数値は説明用の架空データであり、この記事では n8n 環境での接続を実測していません。
