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

Authorization
string
requis
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
Les deux endpoints offrent les mêmes fonctionnalités ; vous pouvez utiliser l’un ou l’autre.

Réponse

success
boolean
Indique si la requête a réussi
message
string
Message d’erreur (renvoyé uniquement en cas d’échec)
remain_balance
float
Solde restant de l’utilisateur (renvoyé en cas de succès)
remain_credits
integer
Crédits restants de l’utilisateur (renvoyé en cas de succès)
used_balance
float
Solde utilisé de l’utilisateur (renvoyé en cas de succès)
used_credits
float
Crédits utilisés de l’utilisateur (renvoyé en cas de succès)

Solde du token vs solde utilisateur

ComparaisonSolde du token (/v1/balance)Solde utilisateur (/v1/user/balance)
PortéeUn seul tokenCompte utilisateur complet
Source des donnéesRemainQuota et UsedQuota du tokenquota et used_quota de l’utilisateur
Cas d’usageSurveiller l’utilisation d’une clé APIConsulter le solde global du compte
Limité parLimites de quota au niveau du tokenLimites 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’erreurCauseSolution
No Authorization headerEn-tête Authorization non fourniAjoutez l’en-tête Authorization: Bearer sk-xxxxx
Failed to get user quotaL’utilisateur n’existe pasVérifiez que l’utilisateur associé au token existe
Failed to get used quotaErreur de requête en base de donnéesContactez 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.