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": "Hello, please introduce yourself"
}
]
}
]
}'
import requests
url = "https://api.apimart.ai/v1beta/models/gemini-2.5-pro:generateContent"
payload = {
"contents": [
{
"role": "user",
"parts": [
{
"text": "Hello, please introduce yourself"
}
]
}
]
}
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: "Hello, please introduce yourself"
}
]
}
]
};
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": "Hello, please introduce yourself",
},
},
},
},
}
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": "Hello, please introduce yourself"
}
]
}
]
}
""";
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" => "Hello, please introduce yourself"
]
]
]
]
];
$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: "Hello, please introduce yourself"
}
]
}
]
}
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": "Hello! I'm pleased to introduce myself.\n\nI am a large language model, trained and developed by 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": "Invalid request parameters",
"status": "INVALID_ARGUMENT"
}
}
{
"error": {
"code": 401,
"message": "Authentication failed, please check your API Key",
"status": "UNAUTHENTICATED"
}
}
{
"error": {
"code": 402,
"message": "Insufficient balance, please recharge",
"status": "PAYMENT_REQUIRED"
}
}
{
"error": {
"code": 403,
"message": "Access denied",
"status": "PERMISSION_DENIED"
}
}
{
"error": {
"code": 404,
"message": "Model not found",
"status": "NOT_FOUND"
}
}
{
"error": {
"code": 429,
"message": "Rate limit exceeded, please try again later",
"status": "RESOURCE_EXHAUSTED"
}
}
{
"error": {
"code": 500,
"message": "Internal server error",
"status": "INTERNAL"
}
}
{
"error": {
"code": 502,
"message": "Bad gateway, service temporarily unavailable",
"status": "BAD_GATEWAY"
}
}
{
"error": {
"code": 503,
"message": "Service temporarily unavailable",
"status": "UNAVAILABLE"
}
}
Textserie
Natives Gemini-Format
- Aufruf von Gemini-Modellen im nativen Google-API-Format
- Synchroner Verarbeitungsmodus mit Echtzeit-Antwort
- Minimale Parameter für einen schnellen Einstieg
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": "Hello, please introduce yourself"
}
]
}
]
}'
import requests
url = "https://api.apimart.ai/v1beta/models/gemini-2.5-pro:generateContent"
payload = {
"contents": [
{
"role": "user",
"parts": [
{
"text": "Hello, please introduce yourself"
}
]
}
]
}
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: "Hello, please introduce yourself"
}
]
}
]
};
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": "Hello, please introduce yourself",
},
},
},
},
}
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": "Hello, please introduce yourself"
}
]
}
]
}
""";
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" => "Hello, please introduce yourself"
]
]
]
]
];
$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: "Hello, please introduce yourself"
}
]
}
]
}
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": "Hello! I'm pleased to introduce myself.\n\nI am a large language model, trained and developed by 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": "Invalid request parameters",
"status": "INVALID_ARGUMENT"
}
}
{
"error": {
"code": 401,
"message": "Authentication failed, please check your API Key",
"status": "UNAUTHENTICATED"
}
}
{
"error": {
"code": 402,
"message": "Insufficient balance, please recharge",
"status": "PAYMENT_REQUIRED"
}
}
{
"error": {
"code": 403,
"message": "Access denied",
"status": "PERMISSION_DENIED"
}
}
{
"error": {
"code": 404,
"message": "Model not found",
"status": "NOT_FOUND"
}
}
{
"error": {
"code": 429,
"message": "Rate limit exceeded, please try again later",
"status": "RESOURCE_EXHAUSTED"
}
}
{
"error": {
"code": 500,
"message": "Internal server error",
"status": "INTERNAL"
}
}
{
"error": {
"code": 502,
"message": "Bad gateway, service temporarily unavailable",
"status": "BAD_GATEWAY"
}
}
{
"error": {
"code": 503,
"message": "Service temporarily unavailable",
"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": "Hello, please introduce yourself"
}
]
}
]
}'
import requests
url = "https://api.apimart.ai/v1beta/models/gemini-2.5-pro:generateContent"
payload = {
"contents": [
{
"role": "user",
"parts": [
{
"text": "Hello, please introduce yourself"
}
]
}
]
}
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: "Hello, please introduce yourself"
}
]
}
]
};
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": "Hello, please introduce yourself",
},
},
},
},
}
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": "Hello, please introduce yourself"
}
]
}
]
}
""";
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" => "Hello, please introduce yourself"
]
]
]
]
];
$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: "Hello, please introduce yourself"
}
]
}
]
}
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": "Hello! I'm pleased to introduce myself.\n\nI am a large language model, trained and developed by 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": "Invalid request parameters",
"status": "INVALID_ARGUMENT"
}
}
{
"error": {
"code": 401,
"message": "Authentication failed, please check your API Key",
"status": "UNAUTHENTICATED"
}
}
{
"error": {
"code": 402,
"message": "Insufficient balance, please recharge",
"status": "PAYMENT_REQUIRED"
}
}
{
"error": {
"code": 403,
"message": "Access denied",
"status": "PERMISSION_DENIED"
}
}
{
"error": {
"code": 404,
"message": "Model not found",
"status": "NOT_FOUND"
}
}
{
"error": {
"code": 429,
"message": "Rate limit exceeded, please try again later",
"status": "RESOURCE_EXHAUSTED"
}
}
{
"error": {
"code": 500,
"message": "Internal server error",
"status": "INTERNAL"
}
}
{
"error": {
"code": 502,
"message": "Bad gateway, service temporarily unavailable",
"status": "BAD_GATEWAY"
}
}
{
"error": {
"code": 503,
"message": "Service temporarily unavailable",
"status": "UNAVAILABLE"
}
}
Autorisierung
Alle API-Endpunkte erfordern eine Bearer-Token-AuthentifizierungSo erhalten Sie Ihren API-Key:Besuchen Sie die Seite zur API-Key-Verwaltung, um Ihren API-Key zu erhaltenFügen Sie ihn dem Anfrage-Header hinzu:
Authorization: Bearer YOUR_API_KEY
Pfadparameter
ModellnameIn den Beispielen wird
gemini-2.5-pro verwendet, das durch andere unterstützte Gemini-Modelle ersetzt werden kann:gemini-3.5-flash– Gemini 3.5 Flashgemini-3.1-pro-preview– Gemini 3.1 Pro Previewgemini-3-pro-preview– Gemini 3 Pro Previewgemini-2.5-pro– Gemini 2.5 Pro
Generierungsmethode (empfohlen:
generateContent für den schnellen Einstieg):generateContent: Auf die vollständige Antwort warten und auf einmal zurückgebenstreamGenerateContent: Streaming-Antwort, Inhalt in Teilen zurückgeben
generateContent, streamGenerateContentBody
Liste der GesprächsinhalteMindestens 1 Nachricht erforderlich
Beispiel:
Anzeigen Struktur des contents-Objekts
Anzeigen Struktur des contents-Objekts
Rollentyp:
user: Benutzernachrichtmodel: Modellantwort (in der Gesprächshistorie verwendet)
[
{
"role": "user",
"parts": [{ "text": "Hello, please introduce yourself" }]
}
]
Generierungskonfiguration (optional)
Anzeigen Eigenschaften von generationConfig
Anzeigen Eigenschaften von generationConfig
Steuert die Zufälligkeit der Ausgabe, Bereich 0.0–2.0
- Niedrigere Werte machen die Ausgabe deterministischer
- Höhere Werte machen die Ausgabe zufälliger
Maximale Anzahl der zu generierenden TokensVerschiedene Modelle haben unterschiedliche maximale Grenzwerte
Nucleus-Sampling-Parameter, Bereich 0.0–1.0Steuert die beim Sampling berücksichtigte Wahrscheinlichkeitsmasse
Top-K-Sampling-ParameterSampling nur aus den K wahrscheinlichsten Tokens in jedem Schritt
Liste der Stopp-SequenzenGenerierung stoppen, wenn diese Sequenzen auftreten
Sicherheitseinstellungen (optional)
Anzeigen Struktur des safetySettings-Objekts
Anzeigen Struktur des safetySettings-Objekts
Sicherheitskategorie:
HARM_CATEGORY_HATE_SPEECH: HassredeHARM_CATEGORY_DANGEROUS_CONTENT: gefährlicher InhaltHARM_CATEGORY_HARASSMENT: BelästigungHARM_CATEGORY_SEXUALLY_EXPLICIT: sexuell expliziter Inhalt
Schwellenwert-Stufe:
BLOCK_NONE: nicht blockierenBLOCK_ONLY_HIGH: nur hohes Risiko blockierenBLOCK_MEDIUM_AND_ABOVE: mittleres Risiko und höher blockierenBLOCK_LOW_AND_ABOVE: niedriges Risiko und höher blockieren
Response
Liste der Kandidaten-Antworten
Anzeigen Struktur des candidates-Objekts
Anzeigen Struktur des candidates-Objekts
Grund für den Abschluss:
STOP: normale BeendigungMAX_TOKENS: maximale Token-Anzahl erreichtSAFETY: aus Sicherheitsgründen gestopptRECITATION: aufgrund von Rezitation gestopptOTHER: andere Gründe
Index der Kandidaten-Antwort
Nutzungsstatistik
Anzeigen Eigenschaften von usageMetadata
Anzeigen Eigenschaften von usageMetadata
Anzahl der Tokens im Prompt
Anzahl der Tokens in den Kandidaten-Antworten
Gesamtzahl der verbrauchten Tokens
Anzahl der für das Denken verwendeten Tokens (falls zutreffend)
⌘I