Passer au contenu principal
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"
  }
}

Autorisations

Authorization
string
requis
Tous les points de terminaison de l’API nécessitent une authentification par Bearer TokenObtenez votre clé API :Rendez-vous sur la page de gestion des clés API pour obtenir votre clé APIAjoutez-la dans l’en-tête de la requête :
Authorization: Bearer YOUR_API_KEY

Paramètres de chemin

model
string
requis
Nom du modèleLes exemples utilisent gemini-2.5-pro, que vous pouvez remplacer par d’autres modèles Gemini pris en charge :
  • gemini-3.5-flash — Gemini 3.5 Flash
  • gemini-3.1-pro-preview — Gemini 3.1 Pro Preview
  • gemini-3-pro-preview — Gemini 3 Pro Preview
  • gemini-2.5-pro — Gemini 2.5 Pro
method
enum<string>
requis
Méthode de génération (recommandée : generateContent pour un démarrage rapide) :
  • generateContent : attendre la réponse complète et la renvoyer en une seule fois
  • streamGenerateContent : réponse en streaming, renvoie le contenu par segments
Options disponibles : generateContent, streamGenerateContent

Body

contents
array
requis
Liste des contenus de la conversationMinimum 1 message requisExemple :
[
  {
    "role": "user",
    "parts": [{ "text": "Hello, please introduce yourself" }]
  }
]
generationConfig
object
Configuration de génération (optionnelle)
safetySettings
array
Paramètres de sécurité (optionnels)

Response

candidates
array
Liste des réponses candidates
promptFeedback
object
Informations de retour sur le prompt
usageMetadata
object
Statistiques d’utilisation