Endpoint de consommation quotidienne
curl --request GET \
--url https://api.devin.ai/v2/enterprise/consumption/daily \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.devin.ai/v2/enterprise/consumption/daily"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.devin.ai/v2/enterprise/consumption/daily', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.devin.ai/v2/enterprise/consumption/daily",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.devin.ai/v2/enterprise/consumption/daily"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.devin.ai/v2/enterprise/consumption/daily")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devin.ai/v2/enterprise/consumption/daily")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"consumption_by_date": {},
"consumption_by_org_id": {},
"total_acus": 123,
"consumption_by_user": {}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Endpoints de consommation
Consommation quotidienne
Renvoie la consommation quotidienne pour le cycle de facturation en cours
GET
/
v2
/
enterprise
/
consumption
/
daily
Endpoint de consommation quotidienne
curl --request GET \
--url https://api.devin.ai/v2/enterprise/consumption/daily \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.devin.ai/v2/enterprise/consumption/daily"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.devin.ai/v2/enterprise/consumption/daily', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.devin.ai/v2/enterprise/consumption/daily",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.devin.ai/v2/enterprise/consumption/daily"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.devin.ai/v2/enterprise/consumption/daily")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devin.ai/v2/enterprise/consumption/daily")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"consumption_by_date": {},
"consumption_by_org_id": {},
"total_acus": 123,
"consumption_by_user": {}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}L’API de consommation est réservée aux comptes disposant du plan Enterprise. Les organisations Teams et self-serve
reçoivent une réponse
403 ; il n’existe aucun toggle par compte que le support puisse activer.Comportement des fuseaux horaires
Les cycles de facturation utilisent minuit PST (Pacific Standard Time) comme limite de journée, ce qui correspond à 08:00:00 UTC. Pour que les données de consommation affichées dans le tableau de bord Devin coïncident, vous devez fournir des horodatages avec ce décalage de fuseau horaire. Par exemple, pour interroger la consommation d’un cycle de facturation du 5 décembre 2025 au 5 janvier 2026 :curl "https://api.devin.ai/v2/enterprise/consumption/daily?start_date=2025-12-05T08:00:00Z&end_date=2026-01-05T08:00:00Z" \
-H "Authorization: Bearer YOUR_API_KEY"
T08:00:00Z (par exemple 2025-12-05), l’API utilisera minuit UTC, ce qui peut entraîner des totaux de consommation légèrement différents par rapport au tableau de bord.
Filtrage par organisation
Lorsque vous filtrez parorg_ids, les résultats incluent tous les ACU attribués aux organisations spécifiées : les ACU des sessions Devin, ainsi que ceux de Devin Desktop et de Devin CLI, attribués à l’organisation de facturation principale de chaque utilisateur. Consultez Local Agent Controls pour savoir comment est déterminée l’organisation de facturation principale d’un utilisateur.Autorisations
API Key personnelle (apk_user_*) réservée uniquement aux administrateurs Enterprise

