Lister les modèles et les tarifs de Devin Desktop
curl --request GET \
--url https://server.codeium.com/api/v2alpha/models \
--header 'Authorization: Bearer <token>'import requests
url = "https://server.codeium.com/api/v2alpha/models"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://server.codeium.com/api/v2alpha/models', 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://server.codeium.com/api/v2alpha/models",
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://server.codeium.com/api/v2alpha/models"
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://server.codeium.com/api/v2alpha/models")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://server.codeium.com/api/v2alpha/models")
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{
"models": [
{
"uid": "<string>",
"name": "<string>",
"pricing_dimensions": [
{
"label": "<string>",
"unit": "<string>",
"value": 123,
"denominator": "<string>",
"info": "<string>"
}
]
}
]
}Référence de l’API
Lister les modèles et les tarifs de Devin Desktop
Listez les modèles Devin Desktop disponibles pour votre compte, avec leurs UID de modèle, leurs noms et les tarifs par token ou par message facturés à votre équipe.
GET
/
api
/
v2alpha
/
models
Lister les modèles et les tarifs de Devin Desktop
curl --request GET \
--url https://server.codeium.com/api/v2alpha/models \
--header 'Authorization: Bearer <token>'import requests
url = "https://server.codeium.com/api/v2alpha/models"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://server.codeium.com/api/v2alpha/models', 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://server.codeium.com/api/v2alpha/models",
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://server.codeium.com/api/v2alpha/models"
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://server.codeium.com/api/v2alpha/models")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://server.codeium.com/api/v2alpha/models")
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{
"models": [
{
"uid": "<string>",
"name": "<string>",
"pricing_dimensions": [
{
"label": "<string>",
"unit": "<string>",
"value": 123,
"denominator": "<string>",
"info": "<string>"
}
]
}
]
}Vue d’ensemble
Cet endpoint est en version alpha (
v2alpha). La structure de la réponse est susceptible d’évoluer.Authentification
Authorization :
Authorization: Bearer <api-key>
cog_...). Le rôle de l’utilisateur de service doit inclure l’autorisation Use Devin Desktop, et l’accès à Devin Desktop doit être activé pour le compte.
Requête
string
Laissez ce paramètre non défini pour lister tous les modèles autorisés par votre plan et votre modèle de facturation, sans tenir compte des restrictions au niveau de la Team.Définissez-le sur
allowlist pour appliquer également la liste d’autorisation de modèles de votre Team, les contrôles de l’organisation et les restrictions de groupe : la liste correspondra alors à ce que les utilisateurs voient dans le sélecteur de modèles de Devin Desktop.Exemple de requête
curl https://server.codeium.com/api/v2alpha/models \
-H "Authorization: Bearer $DEVIN_API_KEY"
curl "https://server.codeium.com/api/v2alpha/models?filter=allowlist" \
-H "Authorization: Bearer $DEVIN_API_KEY"
Réponse
object[]
Modèles disponibles pour l’appelant. Les modèles désactivés ne sont pas inclus.
Afficher propriétés
Afficher propriétés
string
Identifiant stable du modèle, par exemple
claude-sonnet-4-5.string
Nom affiché dans le sélecteur de modèles.
object[]
Tarifs facturés à l’appelant pour ce modèle. Vide pour les modèles sans frais.
Afficher propriétés
Afficher propriétés
string
Ce qui est facturé, en snake_case :
input, output, cached_input, cache_read ou cache_write pour la tarification par token ; pour les prix exprimés dans une unité non monétaire, la quantité facturée, par exemple message pour une tarification au message. Les modèles Fusion indiquent également les prix de leur sidekick avec le préfixe sidekick_, par exemple sidekick_input ou sidekick_message.string
L’unité dans laquelle
value est exprimée, en snake_case, par exemple usd, acus ou credits.number
Le prix en
unit, par denominator.string
La quantité à laquelle le prix s’applique, par exemple
1M tokens ou message.string
Note facultative sur le prix, par exemple
Higher effort consumes more tokens.Exemple de réponse
{
"models": [
{
"uid": "claude-sonnet-4-5",
"name": "Claude Sonnet 4.5",
"pricing_dimensions": [
{ "label": "input", "unit": "usd", "value": 3, "denominator": "1M tokens" },
{ "label": "cached_input", "unit": "usd", "value": 0.3, "denominator": "1M tokens" },
{ "label": "output", "unit": "usd", "value": 15, "denominator": "1M tokens" }
]
},
{
"uid": "example-model",
"name": "Example Model",
"pricing_dimensions": [
{ "label": "message", "unit": "acus", "value": 0.5, "denominator": "message" }
]
}
]
}
Réponses d’erreur
{"error": "<message>"}.
| Statut | Cause |
|---|---|
400 | filter a une valeur autre que allowlist |
401 | Clé d’API manquante ou invalide |
403 | L’utilisateur associé à la clé n’a pas accès à Devin Desktop |
429 | Limite de débit dépassée ; attendez la durée indiquée par l’en-tête Retry-After avant de réessayer |

