5分で初リクエスト
既存のOpenAI互換クライアントを数秒で無検閲APIに接続します。このクイックスタートでは、基本設定、標準リクエスト、ストリーミング、および「無検閲」モデルでのツール使用をカバーします。
Base URLと認証
OpenAI SDKまたは互換クライアントをBase URLにポイントしてください。特定のライブラリは必要なく、標準APIキーを受け付けるツールはすべてここで動作します。Googleまたはメールでログイン後、ダッシュボードからキーを取得してください。キーは直ちに表示され、すべてのリクエストに必要な唯一の認証情報です。
Base URLをhttps://api.ollamaapi.top/v1に設定します。すべてのチャット完了にはモデルIDuncensoredを使用します。このモデルはオープンウェイトモデルで、拒否が少なくなるようにチューニングされており、主要ベンダーのモデルとは異なります。GPT、Claude、または他の独自モデルではありません。認証はBearerトークンヘッダーのみに依存します。
初リクエスト
接続テストのために標準的なチャット完了リクエストを送信します。エンドポイントはmessages、model、およびtemperatureやmax_tokensなどのオプションパラメータを含むJSONペイロードを受け付けます。モデルIDは常にuncensoredです。レスポンスには、アシスタントのコンテンツとトークン使用量メトリクスを含む構造化JSONが返されます。
リクエストが成功すると、200 OKレスポンスが返されます。認証に失敗すると401エラー、資金が不足していると402エラーが返されます。これらのエラーは無料なので、成功したトークン使用に対してのみ課金されます。アプリケーションへの統合前に、このサンプルを使用して設定を確認してください。
curl https://api.ollamaapi.top/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
}'
Python SDK
公式のOpenAI Pythonライブラリ、または互換性のあるクライアントを使用します。ベースURLとAPIキーを使用してクライアントを初期化します。モデルをuncensoredに設定します。roleとcontentを含む辞書のリストとしてメッセージを渡します。ライブラリはシリアライズとレスポンス解析を自動的に処理します。
streamパラメータによりストリーミングレスポンスがサポートされます。これにより、生成されたトークンを処理でき、長い出力やリアルタイムのUI更新に役立ちます。最後のチャンクには、課金のための総トークン使用量が含まれます。ネットワークエラーは課金されないため、例外を適切に処理してください。
from openai import OpenAI
client = OpenAI(base_url="https://api.ollamaapi.top/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)
Node SDK
openainpmパッケージをインストールするか、fetchベースのラッパーを使用します。ベースURLhttps://api.ollamaapi.top/v1とAPIキーでクライアントを設定します。モデルIDはuncensoredのままです。messagesとtop_pやseedなどのオプション設定を含むリクエストボディを渡します。
Node.js ユーザーはクリーンなコードのために async/await パターンを活用できます。レスポンスオブジェクトには choices、usage、id が含まれます。アシスタントのメッセージは最初の選択肢から抽出できます。エラーハンドリングではレート制限(429)とクレジット不足(402)を考慮する必要があります。これらのエラーはトークンを消費しないため、正常なレスポンスが生成されるまで前払い残高はそのまま維持されます。
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.ollamaapi.top/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);
ストリーミングレスポンス
リクエストにstream: trueを設定してストリーミングを有効にします。APIはServer-Sent Events(SSE)ストリームを返します。各チャンクには部分的なコンテンツが含まれており、生成されたトークンを表示できます。これにより、ユーザーの知覚されるレイテンシが削減され、長文のテキスト生成の体験が向上します。
ストリーミングの最後のチャンクには、完全なトークン使用量データが含まれます。これを使用して、リアルタイムでの消費を追跡できます。ストリーミングは価格モデルを変更するものではなく、入力トークンおよび出力トークン100万トークンあたりで課金されます。ストリーミング中のエラーも無料です。接続が切れた場合、ペナルティなしでリクエストを再開または再起動できます。
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
制限、エラーとコンテキスト
コンテキストウィンドウはプロンプトと補完の合計で100,000トークンです。1回あたりの最大出力は32,000トークンです(max_tokensが未設定の場合は2,048トークン)。コンテキストウィンドウを超えると、リクエストは失敗します。エラーには、無効なキーに対する401、クレジット不足による402、レート制限による429が含まれます。レート制限は1分あたり300リクエスト、キーあたり8つの同時リクエストです。リクエストボディは8 MBに制限されます。エラーは無料であり、失敗したリクエストや拒否に対して課金されません。クレジットは期限切れにならず、サブスクリプションも必要ありません。
API 仕様
購入前に確認できるよう、API の実際の制限と機能をすべてまとめました。
| 項目 | 内容 |
|---|---|
| 形式 | OpenAI 互換:どの OpenAI SDK でも base URL とキーを変えるだけで動作 |
| Base URL | https://api.ollamaapi.top/v1 |
| 認証 | Authorization: Bearer YOUR_KEY |
| エンドポイント | POST /v1/chat/completions · GET /v1/models |
| モデル ID | uncensored |
| 最大出力 | 100,000 トークンのウィンドウの残りまで。max_tokens は任意(個別の上限なし) |
| JSON モード | response_format: {"type": "json_object"} |
| パラメータ | temperature、top_p、stop、seed、presence_penalty、frequency_penalty |
| 関数呼び出し | 対応 — tools、tool_choice。応答に tool_calls(ストリーミングでも)、結果は role: tool で返送 |
| ストリーミング | 対応 — SSE、最後のチャンクにトークン使用量 |
| コンテキスト長 | 100,000 トークン(入力+出力) |
| レート制限 | キーごとに毎分 300 リクエスト |
| 同時実行 | キーごとに同時 8 リクエストまで |
| レスポンスヘッダー | X-Request-Id、X-Balance-USD、X-RateLimit-Limit-Requests、X-RateLimit-Limit-Concurrency |
| リクエストサイズ | 最大 8 MB |
| ボーナス | $50 以上で +5%、$100 以上で +10% |
| 有効期限 | 購入クレジットは失効なし、サブスクなし |
| 課金 | 前払いクレジットから実使用量で課金。エラーと拒否は無料 |
| 無料トライアル | $0.50、7 日間、カード不要 · トライアルキー: 同時2件、毎分60件。初回チャージ後に上限が8件・300件へ拡大 |
| 料金 | 入力 100 万トークン $0.25 · 出力 100 万トークン $1.00 |
| チャージ | USDT(TRC20)または USDC(Base)、$10〜$500 の任意の整数額 |
| ログイン | Google またはメール+パスワード |
| キー | アカウントごとに有効なキーは 1 つ。新しいキーで旧キーは無効 |
| コンテンツ | 成人向けコンテンツ可。未成年者を含む性的コンテンツは拒否 |
エラーコード
エラーは固定の type を持つ JSON で返ります。失敗・拒否されたリクエストは課金されません。
| コード | タイプ | 意味 |
|---|---|---|
400 | bad_request | JSON 不正、メッセージ空、パラメータ誤り、またはコンテキスト超過 |
401 | missing_key · invalid_key · key_revoked | キーなし・誤り・新しいキーに置換済み |
402 | no_credit | 残高ゼロ — チャージすれば即再開 |
403 | content_blocked | 未成年者を含む性的コンテンツ — 拒否、課金なし |
404 | not_found | 不明なエンドポイント |
413 | request_too_large | 本文が 8 MB 超 |
429 | rate_limited · concurrency | 毎分 300 回または同時 8 件を超過 — 待って再試行 |
503 | upstream_busy | モデル混雑 — 数秒後に再試行 |
質問と回答
このAPIは関数呼び出しに対応していますか?
はい、APIは<code>tools</code>および<code>tool_choice</code>パラメータを介して関数呼び出しをサポートしています。リクエストでツールを定義すると、モデルはツール使用のために構造化JSONを返します。この機能は、すべての標準的なOpenAI互換クライアントで動作します。
コンテキストウィンドウを超えた場合はどうなりますか?
トークンの合計数(プロンプト+生成)が100,000 を超える場合、リクエストはエラーで失敗します。このエラーは無料なので、試行に対しては課金されません。<code>max_tokens</code> パラメータを調整するか、プロンプトを短くして制限内に収めてください。
トライアルクレジットは再利用可能ですか?
いいえ、$0.50のトライアルクレジットは7日間有効で、アカウントごとに1回のみ使用可能です。使用後に期限切れになることはありませんが、未使用の場合、7日後に失効します。トライアルの取得にクレジットカードは必要ありません。