curl --request POST \
--url https://api.apimart.ai/v1beta/models/gemini-2.5-pro:generateContent \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"contents": [
{
"role": "user",
"parts": [
{
"text": "こんにちは、自己紹介してください"
}
]
}
]
}'
import requests
url = "https://api.apimart.ai/v1beta/models/gemini-2.5-pro:generateContent"
payload = {
"contents": [
{
"role": "user",
"parts": [
{
"text": "こんにちは、自己紹介してください"
}
]
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://api.apimart.ai/v1beta/models/gemini-2.5-pro:generateContent";
const payload = {
contents: [
{
role: "user",
parts: [
{
text: "こんにちは、自己紹介してください"
}
]
}
]
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://api.apimart.ai/v1beta/models/gemini-2.5-pro:generateContent"
payload := map[string]interface{}{
"contents": []map[string]interface{}{
{
"role": "user",
"parts": []map[string]interface{}{
{
"text": "こんにちは、自己紹介してください",
},
},
},
},
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.apimart.ai/v1beta/models/gemini-2.5-pro:generateContent";
String payload = """
{
"contents": [
{
"role": "user",
"parts": [
{
"text": "こんにちは、自己紹介してください"
}
]
}
]
}
""";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
<?php
$url = "https://api.apimart.ai/v1beta/models/gemini-2.5-pro:generateContent";
$payload = [
"contents" => [
[
"role" => "user",
"parts" => [
[
"text" => "こんにちは、自己紹介してください"
]
]
]
]
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer <token>",
"Content-Type: application/json"
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
require 'net/http'
require 'json'
require 'uri'
url = URI("https://api.apimart.ai/v1beta/models/gemini-2.5-pro:generateContent")
payload = {
contents: [
{
role: "user",
parts: [
{
text: "こんにちは、自己紹介してください"
}
]
}
]
}
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer <token>"
request["Content-Type"] = "application/json"
request.body = payload.to_json
response = http.request(request)
puts response.body
{
"code": 200,
"data": {
"candidates": [
{
"content": {
"role": "model",
"parts": [
{
"text": "こんにちは!自己紹介させていただきます。\n\n私は Google によってトレーニングされ、開発された大規模言語モデルです..."
}
]
},
"finishReason": "STOP",
"index": 0,
"safetyRatings": [
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"probability": "NEGLIGIBLE"
}
]
}
],
"promptFeedback": {
"safetyRatings": [
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"probability": "NEGLIGIBLE"
}
]
]
},
"usageMetadata": {
"promptTokenCount": 4,
"candidatesTokenCount": 611,
"totalTokenCount": 2422,
"thoughtsTokenCount": 1807,
"promptTokensDetails": [
{
"modality": "TEXT",
"tokenCount": 4
}
]
}
}
{
"error": {
"code": 400,
"message": "無効なリクエストパラメータです",
"status": "INVALID_ARGUMENT"
}
}
{
"error": {
"code": 401,
"message": "認証に失敗しました。APIキーを確認してください",
"status": "UNAUTHENTICATED"
}
}
{
"error": {
"code": 402,
"message": "残高が不足しています。チャージしてください",
"status": "PAYMENT_REQUIRED"
}
}
{
"error": {
"code": 403,
"message": "アクセスが拒否されました",
"status": "PERMISSION_DENIED"
}
}
{
"error": {
"code": 404,
"message": "指定されたモデルが見つかりません",
"status": "NOT_FOUND"
}
}
{
"error": {
"code": 429,
"message": "リクエストが頻繁すぎます。後でもう一度お試しください",
"status": "RESOURCE_EXHAUSTED"
}
}
{
"error": {
"code": 500,
"message": "サーバー内部エラー",
"status": "INTERNAL"
}
}
{
"error": {
"code": 502,
"message": "ゲートウェイエラー、サービスが一時的に利用できません",
"status": "BAD_GATEWAY"
}
}
{
"error": {
"code": 503,
"message": "サービスが一時的に利用できません",
"status": "UNAVAILABLE"
}
}
テキストシリーズ
Gemini ネイティブ形式
- Google ネイティブ API 形式で Gemini モデルを呼び出す
- 同期処理モードでリアルタイムレスポンス
- 最小限のパラメータで素早く開始
POST
/
v1beta
/
models
/
{model}
:
{method}
curl --request POST \
--url https://api.apimart.ai/v1beta/models/gemini-2.5-pro:generateContent \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"contents": [
{
"role": "user",
"parts": [
{
"text": "こんにちは、自己紹介してください"
}
]
}
]
}'
import requests
url = "https://api.apimart.ai/v1beta/models/gemini-2.5-pro:generateContent"
payload = {
"contents": [
{
"role": "user",
"parts": [
{
"text": "こんにちは、自己紹介してください"
}
]
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://api.apimart.ai/v1beta/models/gemini-2.5-pro:generateContent";
const payload = {
contents: [
{
role: "user",
parts: [
{
text: "こんにちは、自己紹介してください"
}
]
}
]
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://api.apimart.ai/v1beta/models/gemini-2.5-pro:generateContent"
payload := map[string]interface{}{
"contents": []map[string]interface{}{
{
"role": "user",
"parts": []map[string]interface{}{
{
"text": "こんにちは、自己紹介してください",
},
},
},
},
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.apimart.ai/v1beta/models/gemini-2.5-pro:generateContent";
String payload = """
{
"contents": [
{
"role": "user",
"parts": [
{
"text": "こんにちは、自己紹介してください"
}
]
}
]
}
""";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
<?php
$url = "https://api.apimart.ai/v1beta/models/gemini-2.5-pro:generateContent";
$payload = [
"contents" => [
[
"role" => "user",
"parts" => [
[
"text" => "こんにちは、自己紹介してください"
]
]
]
]
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer <token>",
"Content-Type: application/json"
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
require 'net/http'
require 'json'
require 'uri'
url = URI("https://api.apimart.ai/v1beta/models/gemini-2.5-pro:generateContent")
payload = {
contents: [
{
role: "user",
parts: [
{
text: "こんにちは、自己紹介してください"
}
]
}
]
}
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer <token>"
request["Content-Type"] = "application/json"
request.body = payload.to_json
response = http.request(request)
puts response.body
{
"code": 200,
"data": {
"candidates": [
{
"content": {
"role": "model",
"parts": [
{
"text": "こんにちは!自己紹介させていただきます。\n\n私は Google によってトレーニングされ、開発された大規模言語モデルです..."
}
]
},
"finishReason": "STOP",
"index": 0,
"safetyRatings": [
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"probability": "NEGLIGIBLE"
}
]
}
],
"promptFeedback": {
"safetyRatings": [
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"probability": "NEGLIGIBLE"
}
]
]
},
"usageMetadata": {
"promptTokenCount": 4,
"candidatesTokenCount": 611,
"totalTokenCount": 2422,
"thoughtsTokenCount": 1807,
"promptTokensDetails": [
{
"modality": "TEXT",
"tokenCount": 4
}
]
}
}
{
"error": {
"code": 400,
"message": "無効なリクエストパラメータです",
"status": "INVALID_ARGUMENT"
}
}
{
"error": {
"code": 401,
"message": "認証に失敗しました。APIキーを確認してください",
"status": "UNAUTHENTICATED"
}
}
{
"error": {
"code": 402,
"message": "残高が不足しています。チャージしてください",
"status": "PAYMENT_REQUIRED"
}
}
{
"error": {
"code": 403,
"message": "アクセスが拒否されました",
"status": "PERMISSION_DENIED"
}
}
{
"error": {
"code": 404,
"message": "指定されたモデルが見つかりません",
"status": "NOT_FOUND"
}
}
{
"error": {
"code": 429,
"message": "リクエストが頻繁すぎます。後でもう一度お試しください",
"status": "RESOURCE_EXHAUSTED"
}
}
{
"error": {
"code": 500,
"message": "サーバー内部エラー",
"status": "INTERNAL"
}
}
{
"error": {
"code": 502,
"message": "ゲートウェイエラー、サービスが一時的に利用できません",
"status": "BAD_GATEWAY"
}
}
{
"error": {
"code": 503,
"message": "サービスが一時的に利用できません",
"status": "UNAVAILABLE"
}
}
curl --request POST \
--url https://api.apimart.ai/v1beta/models/gemini-2.5-pro:generateContent \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"contents": [
{
"role": "user",
"parts": [
{
"text": "こんにちは、自己紹介してください"
}
]
}
]
}'
import requests
url = "https://api.apimart.ai/v1beta/models/gemini-2.5-pro:generateContent"
payload = {
"contents": [
{
"role": "user",
"parts": [
{
"text": "こんにちは、自己紹介してください"
}
]
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://api.apimart.ai/v1beta/models/gemini-2.5-pro:generateContent";
const payload = {
contents: [
{
role: "user",
parts: [
{
text: "こんにちは、自己紹介してください"
}
]
}
]
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://api.apimart.ai/v1beta/models/gemini-2.5-pro:generateContent"
payload := map[string]interface{}{
"contents": []map[string]interface{}{
{
"role": "user",
"parts": []map[string]interface{}{
{
"text": "こんにちは、自己紹介してください",
},
},
},
},
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://api.apimart.ai/v1beta/models/gemini-2.5-pro:generateContent";
String payload = """
{
"contents": [
{
"role": "user",
"parts": [
{
"text": "こんにちは、自己紹介してください"
}
]
}
]
}
""";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
<?php
$url = "https://api.apimart.ai/v1beta/models/gemini-2.5-pro:generateContent";
$payload = [
"contents" => [
[
"role" => "user",
"parts" => [
[
"text" => "こんにちは、自己紹介してください"
]
]
]
]
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer <token>",
"Content-Type: application/json"
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
require 'net/http'
require 'json'
require 'uri'
url = URI("https://api.apimart.ai/v1beta/models/gemini-2.5-pro:generateContent")
payload = {
contents: [
{
role: "user",
parts: [
{
text: "こんにちは、自己紹介してください"
}
]
}
]
}
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer <token>"
request["Content-Type"] = "application/json"
request.body = payload.to_json
response = http.request(request)
puts response.body
{
"code": 200,
"data": {
"candidates": [
{
"content": {
"role": "model",
"parts": [
{
"text": "こんにちは!自己紹介させていただきます。\n\n私は Google によってトレーニングされ、開発された大規模言語モデルです..."
}
]
},
"finishReason": "STOP",
"index": 0,
"safetyRatings": [
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"probability": "NEGLIGIBLE"
}
]
}
],
"promptFeedback": {
"safetyRatings": [
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"probability": "NEGLIGIBLE"
}
]
]
},
"usageMetadata": {
"promptTokenCount": 4,
"candidatesTokenCount": 611,
"totalTokenCount": 2422,
"thoughtsTokenCount": 1807,
"promptTokensDetails": [
{
"modality": "TEXT",
"tokenCount": 4
}
]
}
}
{
"error": {
"code": 400,
"message": "無効なリクエストパラメータです",
"status": "INVALID_ARGUMENT"
}
}
{
"error": {
"code": 401,
"message": "認証に失敗しました。APIキーを確認してください",
"status": "UNAUTHENTICATED"
}
}
{
"error": {
"code": 402,
"message": "残高が不足しています。チャージしてください",
"status": "PAYMENT_REQUIRED"
}
}
{
"error": {
"code": 403,
"message": "アクセスが拒否されました",
"status": "PERMISSION_DENIED"
}
}
{
"error": {
"code": 404,
"message": "指定されたモデルが見つかりません",
"status": "NOT_FOUND"
}
}
{
"error": {
"code": 429,
"message": "リクエストが頻繁すぎます。後でもう一度お試しください",
"status": "RESOURCE_EXHAUSTED"
}
}
{
"error": {
"code": 500,
"message": "サーバー内部エラー",
"status": "INTERNAL"
}
}
{
"error": {
"code": 502,
"message": "ゲートウェイエラー、サービスが一時的に利用できません",
"status": "BAD_GATEWAY"
}
}
{
"error": {
"code": 503,
"message": "サービスが一時的に利用できません",
"status": "UNAVAILABLE"
}
}
認証
すべてのAPIエンドポイントにはBearer Token認証が必要ですAPIキーの取得:APIキー管理ページにアクセスしてAPIキーを取得してくださいリクエストヘッダーに追加:
Authorization: Bearer YOUR_API_KEY
パスパラメータ
モデル名例では
gemini-2.5-pro を使用していますが、他のサポートされている Gemini モデルに置き換えることができます:gemini-3.5-flash- Gemini 3.5 高速版gemini-3.1-pro-preview- Gemini 3.1 Pro プレビュー版gemini-3-pro-preview- Gemini 3 Pro プレビュー版gemini-2.5-pro- Gemini 2.5 専門版
生成方法(クイックスタートには
generateContent を推奨):generateContent: 完全なレスポンスを待って一度に返すstreamGenerateContent: ストリーム形式で段階的にコンテンツを返す
generateContent, streamGenerateContentボディ
会話内容のリスト最低1つのメッセージが必要
例:
表示 contents オブジェクト構造
表示 contents オブジェクト構造
[
{
"role": "user",
"parts": [{ "text": "こんにちは、自己紹介してください" }]
}
]
生成設定(オプション)
表示 generationConfig プロパティ
表示 generationConfig プロパティ
出力のランダム性を制御、範囲 0.0-2.0
- 低い値は出力をより決定的にします
- 高い値は出力をよりランダムにします
生成する最大トークン数モデルによって最大制限が異なります
ニュークリアスサンプリングパラメータ、範囲 0.0-1.0サンプリング時に考慮する確率質量を制御
Top-K サンプリングパラメータ各ステップで最も確率の高い K トークンからのみサンプリング
停止シーケンスのリストこれらのシーケンスに遭遇したら生成を停止
安全設定(オプション)
表示 safetySettings オブジェクト構造
表示 safetySettings オブジェクト構造
安全カテゴリ:
HARM_CATEGORY_HATE_SPEECH: ヘイトスピーチHARM_CATEGORY_DANGEROUS_CONTENT: 危険なコンテンツHARM_CATEGORY_HARASSMENT: ハラスメントHARM_CATEGORY_SEXUALLY_EXPLICIT: 性的に露骨なコンテンツ
しきい値レベル:
BLOCK_NONE: ブロックしないBLOCK_ONLY_HIGH: 高リスクのみブロックBLOCK_MEDIUM_AND_ABOVE: 中リスク以上をブロックBLOCK_LOW_AND_ABOVE: 低リスク以上をブロック
レスポンス
候補レスポンスのリスト
表示 candidates オブジェクト構造
表示 candidates オブジェクト構造
完了理由:
STOP: 正常完了MAX_TOKENS: 最大トークン制限に達したSAFETY: 安全上の理由で停止RECITATION: 繰り返しのため停止OTHER: その他の理由
候補レスポンスのインデックス
使用量統計
表示 usageMetadata プロパティ
表示 usageMetadata プロパティ
⌘I