POST
/v1/models/{model}:generateContent/v1/models/{model}:generateContent
Gemini REST 风格的 generateContent 与 streamGenerateContent 路由,在 /v1 与 /v1beta(Google GenAI SDK 默认)底下皆支持。以 x-goog-api-key 验证——这是 SDK 的默认。
路由#
{model} 是 GET /v1/models 回传的 id,例如 gemini-3-5-flash-lite。
请求#
curl "https://api.atptoken.ai/v1/models/<model>:generateContent" \
-H "x-goog-api-key: atp-..." \
-H "Content-Type: application/json" \
-d '{
"contents": [{ "parts": [{ "text": "hi" }] }]
}'contents、systemInstruction 与 generationConfig(例如 maxOutputTokens、temperature)都使用 Gemini 的栏位名称。
回应#
回应
JSON
{
"candidates": [
{
"content": {
"parts": [{ "text": "Hello there, friend!" }],
"role": "model"
},
"finishReason": "STOP"
}
],
"createTime": "2026-10-07T08:32:26.357216Z",
"modelVersion": "gemini-3-5-flash-lite",
"responseId": "01M3F7W9CNBGWDEBPB0NBDS0AD",
"usageMetadata": {
"candidatesTokenCount": 5,
"promptTokenCount": 31,
"totalTokenCount": 36
}
}token 数在 usageMetadata,responseId 是 Gateway 的 id,不是 Google 的。
串流#
streamGenerateContent 一律以 Server-Sent Events 回应(Content-Type: text/event-stream),加不加 ?alt=sse 都一样。这点和 Google 自己的 API 不同:Google 在没加 alt=sse 时会回传一个 JSON 阵列,预期拿到阵列的客户端需要改成处理 SSE。Google GenAI SDK 本来就会要求 SSE,可以直接使用。
请求
curl -N "https://api.atptoken.ai/v1beta/models/gemini-3-5-flash-lite:streamGenerateContent?alt=sse" \
-H "x-goog-api-key: atp-..." \
-H "Content-Type: application/json" \
-d '{ "contents": [{ "role": "user", "parts": [{ "text": "Say hi in 3 words" }] }] }'回应
data: {"candidates":[{"content":{"parts":[{"text":"Hello there"}],"role":"model"},"finishReason":null,"index":0}]}
data: {"candidates":[{"content":{"parts":[{"text":", friend!"}],"role":"model"},"finishReason":null,"index":0}]}
data: {"candidates":[{"content":{"parts":[{"text":""}],"role":"model"},"finishReason":"STOP","index":0}],"usageMetadata":{"candidatesTokenCount":5,"promptTokenCount":31,"totalTokenCount":36}}每个区块只带新增的文字。finishReason 在最后一个区块之前都是 null,最后一个区块同时带有 usageMetadata。没有 [DONE] 行——连线关闭就代表串流结束。
与 Google API 的差异#
错误#
401
没带密钥或密钥无效。
403
这个项目没开放该模型,或模型不存在。
各状态码的意义与先检查什么,见错误码。
这页有帮助吗?