Endpoint de consumo diario por usuario
curl --request GET \
--url https://api.devin.ai/v2/enterprise/consumption/daily/{user_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.devin.ai/v2/enterprise/consumption/daily/{user_id}"
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/{user_id}', 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/{user_id}",
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/{user_id}"
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/{user_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devin.ai/v2/enterprise/consumption/daily/{user_id}")
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
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Endpoints de consumo
Consumo diario del usuario
Devuelve el consumo diario de un usuario específico
GET
/
v2
/
enterprise
/
consumption
/
daily
/
{user_id}
Endpoint de consumo diario por usuario
curl --request GET \
--url https://api.devin.ai/v2/enterprise/consumption/daily/{user_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.devin.ai/v2/enterprise/consumption/daily/{user_id}"
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/{user_id}', 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/{user_id}",
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/{user_id}"
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/{user_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devin.ai/v2/enterprise/consumption/daily/{user_id}")
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
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}La API de consumo solo está disponible para cuentas con el plan Enterprise. Los Teams y las
organizaciones self-serve reciben una respuesta
403; no existe ningún toggle por cuenta que el soporte pueda habilitar.Comportamiento de la zona horaria
Los ciclos de facturación usan la medianoche PST (hora estándar del Pacífico) como límite del día, lo que corresponde a las 08:00:00 UTC. Para que los datos de consumo que se muestran en el panel de control de Devin coincidan, debes enviar marcas de tiempo con este desplazamiento horario. Consulta Consumo diario para obtener detalles y ejemplos.Filtrado por organización
Al filtrar pororg_ids, los resultados incluyen todos los ACU atribuidos a las organizaciones especificadas: los ACU de sesiones de Devin, así como los de Devin Desktop y Devin CLI, que se atribuyen a la organización de facturación principal de cada usuario. Consulta Controles de Local Agent para conocer cómo se determina la organización de facturación principal de un usuario.Autorizaciones
API key personal (apk_user_*) solo para administradores de Enterprise

