curl --request GET \
--url 'https://api.apimart.ai/v1/user/balance' \
--header 'Authorization: Bearer <token>'
import requests
API_BASE = 'https://api.apimart.ai'
API_KEY = 'sk-xxxxxxxxxxxxxxxxxxxxxx'
headers = {
'Authorization': f'Bearer {API_KEY}'
}
def get_user_balance():
response = requests.get(f'{API_BASE}/v1/user/balance', headers=headers)
data = response.json()
if data.get('success'):
print(f"Remaining balance: {data['remain_balance']}")
print(f"Used balance: {data['used_balance']}")
else:
print(f"Query failed: {data.get('message')}")
return data
get_user_balance()
const API_BASE = 'https://api.apimart.ai';
const API_KEY = 'sk-xxxxxxxxxxxxxxxxxxxxxx';
async function getUserBalance() {
const response = await fetch(`${API_BASE}/v1/user/balance`, {
headers: {
'Authorization': `Bearer ${API_KEY}`
}
});
const data = await response.json();
if (data.success) {
console.log(`Remaining balance: ${data.remain_balance}`);
console.log(`Used balance: ${data.used_balance}`);
} else {
console.error('Query failed:', data.message);
}
return data;
}
getUserBalance();
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
type BalanceResponse struct {
Success bool `json:"success"`
Message string `json:"message,omitempty"`
RemainBalance float64 `json:"remain_balance"`
UsedBalance float64 `json:"used_balance"`
}
func main() {
url := "https://api.apimart.ai/v1/user/balance"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", "Bearer <token>")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
var result BalanceResponse
json.Unmarshal(body, &result)
if result.Success {
fmt.Printf("Remaining balance: %.2f\n", result.RemainBalance)
fmt.Printf("Used balance: %.2f\n", result.UsedBalance)
}
}
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/v1/user/balance";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer <token>")
.GET()
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
<?php
$api_key = 'sk-xxxxxxxxxxxxxxxxxxxxxx';
$ch = curl_init('https://api.apimart.ai/v1/user/balance');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer $api_key"
]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
if ($data['success']) {
echo "Remaining balance: " . $data['remain_balance'] . "\n";
echo "Used balance: " . $data['used_balance'] . "\n";
} else {
echo "Query failed: " . $data['message'] . "\n";
}
?>
require 'net/http'
require 'json'
require 'uri'
api_key = 'sk-xxxxxxxxxxxxxxxxxxxxxx'
url = URI("https://api.apimart.ai/v1/user/balance")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer #{api_key}"
response = http.request(request)
data = JSON.parse(response.body)
if data['success']
puts "Remaining balance: #{data['remain_balance']}"
puts "Used balance: #{data['used_balance']}"
else
puts "Query failed: #{data['message']}"
end
import Foundation
let apiKey = "sk-xxxxxxxxxxxxxxxxxxxxxx"
let url = URL(string: "https://api.apimart.ai/v1/user/balance")!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization")
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let error = error {
print("Error: \(error)")
return
}
if let data = data, let responseString = String(data: data, encoding: .utf8) {
print(responseString)
}
}
task.resume()
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var apiKey = "sk-xxxxxxxxxxxxxxxxxxxxxx";
var url = "https://api.apimart.ai/v1/user/balance";
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
var response = await client.GetAsync(url);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
{
"success": true,
"remain_balance": 100.0,
"remain_credits": 1000,
"used_balance": 25.5,
"used_credits": 255
}
{
"success": false,
"message": "Failed to get user quota: record not found"
}
{
"success": false,
"message": "Failed to get used quota: record not found"
}
{
"error": {
"code": 401,
"message": "Invalid authentication credentials",
"type": "authentication_error"
}
}
{
"error": {
"code": 429,
"message": "Rate limit exceeded. Please try again later",
"type": "rate_limit_error"
}
}
Gestion du compte
Consulter le solde de l'utilisateur
- Consulter les crédits restants et utilisés globaux du compte utilisateur
- Obtenir les informations de solde au niveau utilisateur
- Prise en charge CORS pour les requêtes cross-origin
- Surveillance du solde en temps réel
GET
/
v1
/
user
/
balance
curl --request GET \
--url 'https://api.apimart.ai/v1/user/balance' \
--header 'Authorization: Bearer <token>'
import requests
API_BASE = 'https://api.apimart.ai'
API_KEY = 'sk-xxxxxxxxxxxxxxxxxxxxxx'
headers = {
'Authorization': f'Bearer {API_KEY}'
}
def get_user_balance():
response = requests.get(f'{API_BASE}/v1/user/balance', headers=headers)
data = response.json()
if data.get('success'):
print(f"Remaining balance: {data['remain_balance']}")
print(f"Used balance: {data['used_balance']}")
else:
print(f"Query failed: {data.get('message')}")
return data
get_user_balance()
const API_BASE = 'https://api.apimart.ai';
const API_KEY = 'sk-xxxxxxxxxxxxxxxxxxxxxx';
async function getUserBalance() {
const response = await fetch(`${API_BASE}/v1/user/balance`, {
headers: {
'Authorization': `Bearer ${API_KEY}`
}
});
const data = await response.json();
if (data.success) {
console.log(`Remaining balance: ${data.remain_balance}`);
console.log(`Used balance: ${data.used_balance}`);
} else {
console.error('Query failed:', data.message);
}
return data;
}
getUserBalance();
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
type BalanceResponse struct {
Success bool `json:"success"`
Message string `json:"message,omitempty"`
RemainBalance float64 `json:"remain_balance"`
UsedBalance float64 `json:"used_balance"`
}
func main() {
url := "https://api.apimart.ai/v1/user/balance"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", "Bearer <token>")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
var result BalanceResponse
json.Unmarshal(body, &result)
if result.Success {
fmt.Printf("Remaining balance: %.2f\n", result.RemainBalance)
fmt.Printf("Used balance: %.2f\n", result.UsedBalance)
}
}
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/v1/user/balance";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer <token>")
.GET()
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
<?php
$api_key = 'sk-xxxxxxxxxxxxxxxxxxxxxx';
$ch = curl_init('https://api.apimart.ai/v1/user/balance');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer $api_key"
]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
if ($data['success']) {
echo "Remaining balance: " . $data['remain_balance'] . "\n";
echo "Used balance: " . $data['used_balance'] . "\n";
} else {
echo "Query failed: " . $data['message'] . "\n";
}
?>
require 'net/http'
require 'json'
require 'uri'
api_key = 'sk-xxxxxxxxxxxxxxxxxxxxxx'
url = URI("https://api.apimart.ai/v1/user/balance")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer #{api_key}"
response = http.request(request)
data = JSON.parse(response.body)
if data['success']
puts "Remaining balance: #{data['remain_balance']}"
puts "Used balance: #{data['used_balance']}"
else
puts "Query failed: #{data['message']}"
end
import Foundation
let apiKey = "sk-xxxxxxxxxxxxxxxxxxxxxx"
let url = URL(string: "https://api.apimart.ai/v1/user/balance")!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization")
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let error = error {
print("Error: \(error)")
return
}
if let data = data, let responseString = String(data: data, encoding: .utf8) {
print(responseString)
}
}
task.resume()
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var apiKey = "sk-xxxxxxxxxxxxxxxxxxxxxx";
var url = "https://api.apimart.ai/v1/user/balance";
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
var response = await client.GetAsync(url);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
{
"success": true,
"remain_balance": 100.0,
"remain_credits": 1000,
"used_balance": 25.5,
"used_credits": 255
}
{
"success": false,
"message": "Failed to get user quota: record not found"
}
{
"success": false,
"message": "Failed to get used quota: record not found"
}
{
"error": {
"code": 401,
"message": "Invalid authentication credentials",
"type": "authentication_error"
}
}
{
"error": {
"code": 429,
"message": "Rate limit exceeded. Please try again later",
"type": "rate_limit_error"
}
}
Obtenez le solde restant et le solde utilisé du compte utilisateur actuel. Cet endpoint renvoie les informations de solde au niveau utilisateur, indépendamment des tokens spécifiques, afin de consulter le solde global du compte.
Les deux endpoints offrent les mêmes fonctionnalités ; vous pouvez utiliser l’un ou l’autre.
curl --request GET \
--url 'https://api.apimart.ai/v1/user/balance' \
--header 'Authorization: Bearer <token>'
import requests
API_BASE = 'https://api.apimart.ai'
API_KEY = 'sk-xxxxxxxxxxxxxxxxxxxxxx'
headers = {
'Authorization': f'Bearer {API_KEY}'
}
def get_user_balance():
response = requests.get(f'{API_BASE}/v1/user/balance', headers=headers)
data = response.json()
if data.get('success'):
print(f"Remaining balance: {data['remain_balance']}")
print(f"Used balance: {data['used_balance']}")
else:
print(f"Query failed: {data.get('message')}")
return data
get_user_balance()
const API_BASE = 'https://api.apimart.ai';
const API_KEY = 'sk-xxxxxxxxxxxxxxxxxxxxxx';
async function getUserBalance() {
const response = await fetch(`${API_BASE}/v1/user/balance`, {
headers: {
'Authorization': `Bearer ${API_KEY}`
}
});
const data = await response.json();
if (data.success) {
console.log(`Remaining balance: ${data.remain_balance}`);
console.log(`Used balance: ${data.used_balance}`);
} else {
console.error('Query failed:', data.message);
}
return data;
}
getUserBalance();
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
type BalanceResponse struct {
Success bool `json:"success"`
Message string `json:"message,omitempty"`
RemainBalance float64 `json:"remain_balance"`
UsedBalance float64 `json:"used_balance"`
}
func main() {
url := "https://api.apimart.ai/v1/user/balance"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", "Bearer <token>")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
var result BalanceResponse
json.Unmarshal(body, &result)
if result.Success {
fmt.Printf("Remaining balance: %.2f\n", result.RemainBalance)
fmt.Printf("Used balance: %.2f\n", result.UsedBalance)
}
}
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/v1/user/balance";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer <token>")
.GET()
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
<?php
$api_key = 'sk-xxxxxxxxxxxxxxxxxxxxxx';
$ch = curl_init('https://api.apimart.ai/v1/user/balance');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer $api_key"
]);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
if ($data['success']) {
echo "Remaining balance: " . $data['remain_balance'] . "\n";
echo "Used balance: " . $data['used_balance'] . "\n";
} else {
echo "Query failed: " . $data['message'] . "\n";
}
?>
require 'net/http'
require 'json'
require 'uri'
api_key = 'sk-xxxxxxxxxxxxxxxxxxxxxx'
url = URI("https://api.apimart.ai/v1/user/balance")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer #{api_key}"
response = http.request(request)
data = JSON.parse(response.body)
if data['success']
puts "Remaining balance: #{data['remain_balance']}"
puts "Used balance: #{data['used_balance']}"
else
puts "Query failed: #{data['message']}"
end
import Foundation
let apiKey = "sk-xxxxxxxxxxxxxxxxxxxxxx"
let url = URL(string: "https://api.apimart.ai/v1/user/balance")!
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("Bearer \(apiKey)", forHTTPHeaderField: "Authorization")
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let error = error {
print("Error: \(error)")
return
}
if let data = data, let responseString = String(data: data, encoding: .utf8) {
print(responseString)
}
}
task.resume()
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var apiKey = "sk-xxxxxxxxxxxxxxxxxxxxxx";
var url = "https://api.apimart.ai/v1/user/balance";
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
var response = await client.GetAsync(url);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
{
"success": true,
"remain_balance": 100.0,
"remain_credits": 1000,
"used_balance": 25.5,
"used_credits": 255
}
{
"success": false,
"message": "Failed to get user quota: record not found"
}
{
"success": false,
"message": "Failed to get used quota: record not found"
}
{
"error": {
"code": 401,
"message": "Invalid authentication credentials",
"type": "authentication_error"
}
}
{
"error": {
"code": 429,
"message": "Rate limit exceeded. Please try again later",
"type": "rate_limit_error"
}
}
Autorisation
Tous les endpoints API requièrent 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 à l’en-tête de la requête :
Authorization: Bearer YOUR_API_KEY
Endpoints
GET /v1/user/balance
GET /user/balance
Réponse
Indique si la requête a réussi
Message d’erreur (renvoyé uniquement en cas d’échec)
Solde restant de l’utilisateur (renvoyé en cas de succès)
Crédits restants de l’utilisateur (renvoyé en cas de succès)
Solde utilisé de l’utilisateur (renvoyé en cas de succès)
Crédits utilisés de l’utilisateur (renvoyé en cas de succès)
Solde du token vs solde utilisateur
| Comparaison | Solde du token (/v1/balance) | Solde utilisateur (/v1/user/balance) |
|---|---|---|
| Portée | Un seul token | Compte utilisateur complet |
| Source des données | RemainQuota et UsedQuota du token | quota et used_quota de l’utilisateur |
| Cas d’usage | Surveiller l’utilisation d’une clé API | Consulter le solde global du compte |
| Limité par | Limites de quota au niveau du token | Limites de quota au niveau utilisateur |
Cas d’usage
- Consulter le solde global du compte utilisateur
- Configurer des rappels de recharge et des alertes de solde
- Afficher le solde du compte dans le tableau de bord utilisateur
Informations sur l’unité du soldeL’unité de la valeur du solde dépend de la configuration du système :
- USD — Dollars américains
- CNY — Yuans chinois
- Tokens — Nombre de tokens
Erreurs fréquentes
| Message d’erreur | Cause | Solution |
|---|---|---|
| No Authorization header | En-tête Authorization non fourni | Ajoutez l’en-tête Authorization: Bearer sk-xxxxx |
| Failed to get user quota | L’utilisateur n’existe pas | Vérifiez que l’utilisateur associé au token existe |
| Failed to get used quota | Erreur de requête en base de données | Contactez l’administrateur pour vérifier l’état du système |
Note de sécuritéVotre clé API est comme un mot de passe. Conservez-la en sécurité et ne la partagez pas. Utilisez toujours HTTPS en production.
⌘I