Devin Desktop-Modelle und Preise auflisten
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>"
}
]
}
]
}API-Referenz
Devin Desktop-Modelle und Preise auflisten
Listen Sie die für Ihr Konto verfügbaren Devin Desktop-Modelle samt Modell-UIDs, Namen und den Preisen pro Token oder pro Nachricht auf, die Ihrem Team berechnet werden.
GET
/
api
/
v2alpha
/
models
Devin Desktop-Modelle und Preise auflisten
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>"
}
]
}
]
}Übersicht
Gibt die Modelle zurück, die dem aufrufenden Account zur Verfügung stehen, samt den Preisen, die diesem Account tatsächlich berechnet werden. Nutzen Sie diesen Endpunkt als programmatische Source of Truth für Modellpreise, anstatt Preise von der Modelle-Seite zu übernehmen. Die Preise hängen vom Plan und Abrechnungsmodell des Aufrufers ab, daher können zwei Teams für dasselbe Modell unterschiedliche Werte erhalten.Dieser Endpunkt befindet sich im Alpha-Stadium (
v2alpha). Die Struktur der Antwort kann sich ändern.Authentifizierung
Übergeben Sie einen API-Schlüssel imAuthorization-Header:
Authorization: Bearer <api-key>
cog_...). Die Rolle des Service-Benutzers muss die Berechtigung Use Devin Desktop umfassen, und der Zugriff auf Devin Desktop muss für das Konto aktiviert sein.
Request
string
Ohne Angabe werden alle Modelle aufgelistet, die Ihr Plan und Ihr Abrechnungsmodell zulassen – teamweite Beschränkungen bleiben dabei unberücksichtigt.Setzen Sie den Wert auf
allowlist, um zusätzlich die Allowlist Ihres Teams, die Vorgaben der Organisation sowie Gruppenbeschränkungen anzuwenden. Die Liste entspricht dann dem, was Nutzer in der Modellauswahl von Devin Desktop sehen.Beispielanfrage
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"
Antwort
object[]
Für den Aufrufer verfügbare Modelle. Deaktivierte Modelle sind nicht enthalten.
Anzeigen Eigenschaften
Anzeigen Eigenschaften
string
Stabile Modellkennung, z. B.
claude-sonnet-4-5.string
Anzeigename, der in der Modellauswahl erscheint.
object[]
Preise, die dem Aufrufer für dieses Modell berechnet werden. Bei kostenlosen Modellen leer.
Anzeigen Eigenschaften
Anzeigen Eigenschaften
string
Wofür der Preis gilt, in snake_case:
input, output, cached_input, cache_read oder cache_write für Token-Preise; bei Preisen in einer Nicht-Währungseinheit die abgerechnete Menge, z. B. message für die Abrechnung pro Nachricht. Fusion-Modelle führen zusätzlich die Preise ihres Sidekicks mit dem Präfix sidekick_ auf, z. B. sidekick_input oder sidekick_message.string
Die Einheit, in der
value angegeben ist, in snake_case, z. B. usd, acus oder credits.number
Der Preis in
unit, pro denominator.string
Die Menge, für die der Preis gilt, z. B.
1M tokens oder message.string
Optionaler Hinweis zum Preis, z. B.
Higher effort consumes more tokens.Beispielantwort
Die folgenden Modelle und Preise dienen nur zur Veranschaulichung des Antwortformats. Rufen Sie den Endpunkt auf, um Ihre tatsächlichen Preise zu erhalten.{
"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" }
]
}
]
}
Fehlerantworten
Fehler werden als{"error": "<message>"} zurückgegeben.
| Status | Ursache |
|---|---|
400 | filter ist auf einen anderen Wert als allowlist gesetzt |
401 | Fehlender oder ungültiger API-Schlüssel |
403 | Der Nutzer des Schlüssels hat keinen Zugriff auf Devin Desktop |
429 | Ratenlimit überschritten; warten Sie die im Retry-After-Header angegebene Zeit ab, bevor Sie es erneut versuchen |

