認証 & ベースURLのセットアップ
APIキーの生成はダッシュボードから開始します。ベースURLは HTTPS://api.grokkey.com/v1 です。キーをAuthorizationヘッダーに渡してください。拒否は無料です。チャージは暗号通貨のみ利用可能です。
チャット完了エンドポイント
チャットエンドポイントにテキストプロンプトを送信します。モデルIDは「uncensored」です。GPTやGrokではありません。コンテキストは100kトークンです。最大出力はフルウィンドウです。エラーはクレジットを消費しません。
temperatureやtop_pなどのパラメータを設定します。APIはテキストのみを返します。埋め込みや画像はありません。リクエストとレスポンスには標準のJSON形式を使用します。
ストリーミング & トークン使用
ストリーミングレスポンスを設定するには stream: trueSSEチャンクを受信します。トークン使用量は最後のチャンクに表示されます。これによりリアルタイムでの表示が可能になります。また、大きな出力も効率的に処理できます。チャットインターフェースに使用します。
Function Calling & JSON Mode
構造化出力のためにツールを使用します。設定 response_format に {"type": "json_object"} 厳密なJSON用。関数呼び出しはtool_choiceをサポートしており、信頼性の高い統合を可能にします。データ抽出に使用できます。uncensoredモデルと互換性があります。プロンプトを明確にしてください。
レート制限と制約条件
1分あたり300リクエスト。最大同時リクエストは8。リクエストボディ最大は8 MB。アカウントごとにキーは1つ。古いキーは新しいキーで置き換えてください。制限は悪用を防ぎます。使用状況を監視してください。クレジットは期限切れになりません。使用したトークンのみ課金。
モデル仕様
モデルID: "uncensored"。オープンウェイトモデル。アダルトコンテンツ向けにチューニング済み。プロンプトのトレーニングなし。100kコンテキストウィンドウ。出力制限なし。パラメータ:temperature, top_p, stop, seed, presence_penalty, frequency_penalty。SLAなし。認証なし。直接APIアクセス。
cURL
curl https://api.grokkey.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "List the top five Rust crates for high throughput networking"}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.grokkey.com/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.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.grokkey.com/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 = 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)