Gemini 原生
用一个 BeatAPI 密钥,通过 Gemini generateContent 请求调用 Gemini 4 Argon、Gemini 3.8 Flash 和 Gemini 3.1 Pro。
POST /v1beta/models/{model}:generateContent覆盖当前所有 Gemini 模型,流式输出用:streamGenerateContent?alt=sse。- 支持文本与图片输入、文本输出、流式输出、函数调用和思考。
- 密钥放在
x-goog-api-key请求头,或作为 Bearer 令牌发送。 - 模型 ID 写在 URL 里,不在请求体里。
文本请求建议使用 https://direct.beatapi.io 作为 base URL:它不受 Cloudflare 100 秒限制,长时间的非流式请求不会被中途切断。https://api.beatapi.io 同样可用;如果你的网络访问不了 direct.beatapi.io,请改用它作为备用。两个域名的密钥、模型和价格完全一致。图片和视频 API 只使用 https://api.beatapi.io。
在调试窗口里打开本接口,填入你的 BeatAPI API 密钥即可发送。调用是真实的,费用从你自己的余额中扣除。
模型
把下列 ID 之一写进 URL,替换 {model}。
- 价格为基础档,已计入折扣。长上下文档、缓存命中输入价和缓存写入价不在本表内,见价格表。
—表示目录未公布该数字。
本系列仍可调用的旧 ID 见旧型号。
快速开始
把密钥放在 BEATAPI_API_KEY,不要把它写进浏览器代码。模型 ID 在 URL 里,所以请求体没有 model 字段。以下是请求示例,不是真实的模型输出记录。
从 candidates[0].content.parts[0].text 读取答案,再检查 candidates[0].finishReason 和 usageMetadata。HTTP 200 不能证明答案满足你的任务,请在应用里校验内容。文本请求直接返回,不要为它们轮询 /v1/tasks。
端点与鉴权
POST https://direct.beatapi.io/v1beta/models/{model}:generateContent
x-goog-api-key
string
必需
把你的 BeatAPI 密钥放在 x-goog-api-key 请求头里。也接受 Authorization: Bearer <BEATAPI_API_KEY>。
流式输出调用 POST /v1beta/models/{model}:streamGenerateContent?alt=sse。密钥放在 x-goog-api-key 请求头,或放在 Authorization: Bearer <key>,两种都行。
:countTokens 不可用,会返回 404。
请求参数
以上是会生效的字段。其他 Gemini 字段请求里可以带,但不起作用:generationConfig.thinkingConfig、generationConfig.responseMimeType、generationConfig.responseSchema、generationConfig.seed、safetySettings、toolConfig 和 cachedContent。请不要依赖它们。
contents
object[]
必需
对话内容,最早的一轮在前。每一项有 role(user 或 model)和 parts。一个 part 可以是 text、inlineData(mimeType 和 base64 的 data)、fileData(mimeType 和 fileUri)、functionCall 或 functionResponse。
- 当前所有 Gemini 模型都支持图片输入:用
inlineData,或用带图片 URL 的fileData。其他媒体类型请先测试你的文件,再依赖它。 contents为空或缺失会返回400 bad_request。
示例
systemInstruction
object
可选
系统提示词,写成 { "parts": [{ "text": "..." }] }。只使用其中的 text part。
示例
generationConfig
object
可选
生成选项。以下子字段会生效:maxOutputTokens、temperature、topP、topK、stopSequences 和 candidateCount。
示例
generationConfig.maxOutputTokens
integer
可选
生成 token 数的上限,包含思考。
- 接受的最大值是 1,073,741,823,更大的值返回
400 bad_request。请保持在上表中该模型的最大输出以内。 - Gemini 模型默认会思考,思考 token 按输出计费,并计入这个上限。值太小时会被思考用光,答案为空,
finishReason为"MAX_TOKENS"。哪怕只要一段很短的答案,也请预留至少 1,000 token。 maxOutputTokens还用来估算请求需要的余额。过大的值即使实际输出很短,也可能被402 insufficient_credits拒绝。按实际需要设置。
generationConfig.temperature
number
可选
采样温度。
generationConfig.topP
number
可选
核采样。值为 0 时被忽略。
generationConfig.topK
integer
可选
Top-K 采样。值为 0 时被忽略。
generationConfig.stopSequences
string[]
可选
遇到这些字符串就停止生成。最多使用 4 个。
generationConfig.candidateCount
integer
可选
返回的候选数。除非需要多个候选,否则不要设置。
tools
object[]
可选
模型可以调用的函数声明,写成 [{ "functionDeclarations": [...] }]。每个声明有 name、description 和 parameters(JSON Schema)。调用以 functionCall part 的形式返回;运行函数后,在下一轮 user 里用 functionResponse part 返回结果。
- 只使用
functionDeclarations。googleSearch、codeExecution等内置工具会被忽略。
示例
响应
非流式调用返回一个 JSON 对象。以下是精简后的示例。
响应字段
流式输出
调用 :streamGenerateContent?alt=sse。每个事件是一行 data: {...},内容是 candidates 对象,形状与非流式答案相同。
- 最后一个事件带有
finishReason,例如"STOP"。 - 流式响应是
text/event-stream。调用模型之前发生的失败,以带 HTTP 状态码的普通 JSON 错误返回,不会作为流事件出现。 - 请设置明确的超时,并安全地重连流式响应。
错误
HTTP 错误速查
Gemini 原生端点的错误只有一种格式 {"error": {"message", "type": "beatapi_error", "code"}}:错误码在 error.code,request id 附在 message 末尾,没有 retryable 字段。详见错误码。
完整的错误码表和重试策略见错误码。
注意事项
- Gemini 模型也可以用 Chat Completions、Responses 和 Anthropic Messages 调用,见 Gemini 的其他页面。
- 思考 token 按输出 token 计费。请为思考和答案一起预留输出额度,不要只按答案估算。
- 密钥只放在可信的服务端,记录响应里的请求 ID,只对
429、500和503重试。
身份验证
Send your API key as Authorization: Bearer <BEATAPI_API_KEY>.
路径参数
请求
对话内容,最早的一轮在前。每一项有 role(user 或 model)和 parts。一个 part 可以是 text、inlineData(mimeType 和 base64 的 data)、fileData(mimeType 和 fileUri)、functionCall 或 functionResponse。
当前所有 Gemini 模型都支持图片输入:用 inlineData,或用带图片 URL 的 fileData。其他媒体类型请先测试你的文件,再依赖它。
contents 为空或缺失会返回 400 bad_request。
系统提示词,写成 { "parts": [{ "text": "..." }] }。只使用其中的 text part。
生成选项。以下子字段会生效:maxOutputTokens、temperature、topP、topK、stopSequences 和 candidateCount。
模型可以调用的函数声明,写成 [{ "functionDeclarations": [...] }]。每个声明有 name、description 和 parameters(JSON Schema)。调用以 functionCall part 的形式返回;运行函数后,在下一轮 user 里用 functionResponse part 返回结果。
只使用 functionDeclarations。googleSearch、codeExecution 等内置工具会被忽略。
响应
非流式调用返回一个 JSON 对象。以下是精简后的示例。

