curl --request POST \
--url 'https://api.elkapi.com/v1beta/models/gemini-3.1-pro-preview:generateContent' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"contents": [
"Hello, please introduce yourself"
],
"generationConfig": {
"temperature": 1
},
"safetySettings": [
{
"category": "category",
"threshold": "threshold"
}
],
"tools": [
{}
],
"systemInstruction": {
"parts": [
{}
]
}
}'
import requests
url = "https://api.elkapi.com/v1beta/models/gemini-3.1-pro-preview:generateContent"
headers = {
"Authorization": "Bearer <token>"
}
headers["Content-Type"] = "application/json"
payload = {
"contents": [
"Hello, please introduce yourself"
],
"generationConfig": {
"temperature": 1
},
"safetySettings": [
{
"category": "category",
"threshold": "threshold"
}
],
"tools": [
{}
],
"systemInstruction": {
"parts": [
{}
]
}
}
response = requests.request("POST", url, headers=headers, json=payload)
print(response.json())
const url = "https://api.elkapi.com/v1beta/models/gemini-3.1-pro-preview:generateContent";
const headers = {
"Authorization": "Bearer <token>"
};
headers["Content-Type"] = "application/json";
const payload = {
"contents": [
"Hello, please introduce yourself"
],
"generationConfig": {
"temperature": 1
},
"safetySettings": [
{
"category": "category",
"threshold": "threshold"
}
],
"tools": [
{}
],
"systemInstruction": {
"parts": [
{}
]
}
};
const response = await fetch(url, {
method: "POST",
headers,
body: JSON.stringify(payload)
});
console.log(await response.json());
{
"candidates": [
{
"content": "Hello, please introduce yourself",
"finishReason": "finishReason",
"safetyRatings": [
{}
]
}
],
"usageMetadata": {
"promptTokenCount": 1,
"candidatesTokenCount": 1,
"totalTokenCount": 1
}
}
Native Gemini Format
Gemini Text Chat
- Proxy Gemini API requests.
- Path format:
/v1beta/models/{model_name}:{action} - For example:
/v1beta/models/gemini-2.5-pro:generateContent
POST
/
v1beta
/
models
/
{model}
:generateContent
curl --request POST \
--url 'https://api.elkapi.com/v1beta/models/gemini-3.1-pro-preview:generateContent' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"contents": [
"Hello, please introduce yourself"
],
"generationConfig": {
"temperature": 1
},
"safetySettings": [
{
"category": "category",
"threshold": "threshold"
}
],
"tools": [
{}
],
"systemInstruction": {
"parts": [
{}
]
}
}'
import requests
url = "https://api.elkapi.com/v1beta/models/gemini-3.1-pro-preview:generateContent"
headers = {
"Authorization": "Bearer <token>"
}
headers["Content-Type"] = "application/json"
payload = {
"contents": [
"Hello, please introduce yourself"
],
"generationConfig": {
"temperature": 1
},
"safetySettings": [
{
"category": "category",
"threshold": "threshold"
}
],
"tools": [
{}
],
"systemInstruction": {
"parts": [
{}
]
}
}
response = requests.request("POST", url, headers=headers, json=payload)
print(response.json())
const url = "https://api.elkapi.com/v1beta/models/gemini-3.1-pro-preview:generateContent";
const headers = {
"Authorization": "Bearer <token>"
};
headers["Content-Type"] = "application/json";
const payload = {
"contents": [
"Hello, please introduce yourself"
],
"generationConfig": {
"temperature": 1
},
"safetySettings": [
{
"category": "category",
"threshold": "threshold"
}
],
"tools": [
{}
],
"systemInstruction": {
"parts": [
{}
]
}
};
const response = await fetch(url, {
method: "POST",
headers,
body: JSON.stringify(payload)
});
console.log(await response.json());
{
"candidates": [
{
"content": "Hello, please introduce yourself",
"finishReason": "finishReason",
"safetyRatings": [
{}
]
}
],
"usageMetadata": {
"promptTokenCount": 1,
"candidatesTokenCount": 1,
"totalTokenCount": 1
}
}
curl --request POST \
--url 'https://api.elkapi.com/v1beta/models/gemini-3.1-pro-preview:generateContent' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"contents": [
"Hello, please introduce yourself"
],
"generationConfig": {
"temperature": 1
},
"safetySettings": [
{
"category": "category",
"threshold": "threshold"
}
],
"tools": [
{}
],
"systemInstruction": {
"parts": [
{}
]
}
}'
import requests
url = "https://api.elkapi.com/v1beta/models/gemini-3.1-pro-preview:generateContent"
headers = {
"Authorization": "Bearer <token>"
}
headers["Content-Type"] = "application/json"
payload = {
"contents": [
"Hello, please introduce yourself"
],
"generationConfig": {
"temperature": 1
},
"safetySettings": [
{
"category": "category",
"threshold": "threshold"
}
],
"tools": [
{}
],
"systemInstruction": {
"parts": [
{}
]
}
}
response = requests.request("POST", url, headers=headers, json=payload)
print(response.json())
const url = "https://api.elkapi.com/v1beta/models/gemini-3.1-pro-preview:generateContent";
const headers = {
"Authorization": "Bearer <token>"
};
headers["Content-Type"] = "application/json";
const payload = {
"contents": [
"Hello, please introduce yourself"
],
"generationConfig": {
"temperature": 1
},
"safetySettings": [
{
"category": "category",
"threshold": "threshold"
}
],
"tools": [
{}
],
"systemInstruction": {
"parts": [
{}
]
}
};
const response = await fetch(url, {
method: "POST",
headers,
body: JSON.stringify(payload)
});
console.log(await response.json());
{
"candidates": [
{
"content": "Hello, please introduce yourself",
"finishReason": "finishReason",
"safetyRatings": [
{}
]
}
],
"usageMetadata": {
"promptTokenCount": 1,
"candidatesTokenCount": 1,
"totalTokenCount": 1
}
}
Authorizations
string
required
All endpoints require Bearer Token authentication.Add it to the request headers:
Authorization: Bearer YOUR_API_KEY
Path Parameters
string
default:"gemini-3.1-pro-preview"
required
Model nameExample:
gemini-3.1-pro-previewBody
array<object>
Response
⌘I