curl --request POST \
--url https://api.devin.ai/v3/organizations/{org_id}/sessions/{devin_id}/archive \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.devin.ai/v3/organizations/{org_id}/sessions/{devin_id}/archive"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.devin.ai/v3/organizations/{org_id}/sessions/{devin_id}/archive', 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/v3/organizations/{org_id}/sessions/{devin_id}/archive",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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/v3/organizations/{org_id}/sessions/{devin_id}/archive"
req, _ := http.NewRequest("POST", 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.post("https://api.devin.ai/v3/organizations/{org_id}/sessions/{devin_id}/archive")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devin.ai/v3/organizations/{org_id}/sessions/{devin_id}/archive")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"acus_consumed": 123,
"created_at": 123,
"org_id": "<string>",
"pull_requests": [
{
"pr_state": "<string>",
"pr_url": "<string>"
}
],
"session_id": "<string>",
"status": "new",
"tags": [
"<string>"
],
"updated_at": 123,
"url": "<string>",
"automation_id": "<string>",
"category": "bug_fixing",
"child_session_ids": [
"<string>"
],
"devin_mode": "normal",
"is_archived": false,
"on_demand_usage": 123,
"origin": "webapp",
"parent_session_id": "<string>",
"playbook_id": "<string>",
"security_profile": {
"selection": "inherit",
"profile_id": "<string>"
},
"service_user_id": "<string>",
"status_detail": "working",
"structured_output": {},
"subcategory": "<string>",
"title": "<string>",
"user_id": "<string>"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}Archivia la sessione
Archivia la sessione e sospendila se è attualmente in esecuzione
curl --request POST \
--url https://api.devin.ai/v3/organizations/{org_id}/sessions/{devin_id}/archive \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.devin.ai/v3/organizations/{org_id}/sessions/{devin_id}/archive"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.devin.ai/v3/organizations/{org_id}/sessions/{devin_id}/archive', 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/v3/organizations/{org_id}/sessions/{devin_id}/archive",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
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/v3/organizations/{org_id}/sessions/{devin_id}/archive"
req, _ := http.NewRequest("POST", 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.post("https://api.devin.ai/v3/organizations/{org_id}/sessions/{devin_id}/archive")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devin.ai/v3/organizations/{org_id}/sessions/{devin_id}/archive")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"acus_consumed": 123,
"created_at": 123,
"org_id": "<string>",
"pull_requests": [
{
"pr_state": "<string>",
"pr_url": "<string>"
}
],
"session_id": "<string>",
"status": "new",
"tags": [
"<string>"
],
"updated_at": 123,
"url": "<string>",
"automation_id": "<string>",
"category": "bug_fixing",
"child_session_ids": [
"<string>"
],
"devin_mode": "normal",
"is_archived": false,
"on_demand_usage": 123,
"origin": "webapp",
"parent_session_id": "<string>",
"playbook_id": "<string>",
"security_profile": {
"selection": "inherit",
"profile_id": "<string>"
},
"service_user_id": "<string>",
"status_detail": "working",
"structured_output": {},
"subcategory": "<string>",
"title": "<string>",
"user_id": "<string>"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}devin_id è l’ID della sessione con il prefisso devin- (ad esempio, devin-abc123).Autorizzazioni
Richiede un utente di servizio o un token di accesso personale con l’autorizzazioneManageOrgSessions a livello di organizzazione.
Note
L’archiviazione contrassegna la sessione e le sue sessioni discendenti come archiviate (is_archived: true) e mette in sospensione quelle in esecuzione. Per trovare le sessioni archiviate, filtra l’endpoint di elenco delle sessioni in base a is_archived.
L’archiviazione non elimina la sessione, non conserva dati aggiuntivi e non la rende di sola lettura:
- Le sessioni archiviate restano visualizzabili e i relativi tag restano modificabili.
- Inviando un messaggio a una sessione archiviata in sospensione, la sessione viene ripresa. Le sessioni terminate non possono essere riprese, che siano archiviate o meno.
- Per annullare l’archiviazione, chiama
POST /v3/organizations/{org_id}/sessions/{devin_id}/unarchive. La rimozione dall’archivio si applica solo alla sessione richiesta, non alle sue discendenti.
Autorizzazioni
Credenziale dell'utente del servizio (prefisso: cog_)
Parametri del percorso
ID dell'organizzazione (prefisso: org-)
"org-abc123def456"
ID della sessione Devin (prefisso: devin-)
"devin-abc123def456"
Risposta
Risposta riuscita
Organizzazione proprietaria. Null per le sessioni scollegate, che appartengono all'account del loro creatore anziché a un'organizzazione.
Show child attributes
Show child attributes
new, claimed, running, exit, error, suspended, resuming ID dell'automazione che ha creato questa sessione, se presente.
La categoria del caso d'uso assegnata alla sessione, se la categorizzazione è stata eseguita. Valorizzato solo negli endpoint get/list.
bug_fixing, ci_cd_and_devops, code_quality_and_security, code_review, code_review_and_analysis, data_and_automation, documentation_and_content, feature_development, migrations_and_upgrades, other, production_investigation, refactoring_and_optimization, research_and_exploration, security, unit_test_generation La modalità Agent di Devin con cui è stata creata la sessione, dopo aver risolto i valori predefiniti di org e utente e l'ereditarietà dalla sessione padre. None se la sessione esegue un'anteprima di un agente senza una modalità equivalente.
normal, fast, fusion, lite, ultra, swe-2-medium, swe-2-high, swe-2-max Spesa a consumo (utilizzo eccedente) in USD per questa sessione, escluse le sessioni figlie. Campo valorizzato solo per i piani Teams; pari a 0 quando la sessione è stata interamente coperta dalla quota. Omesso per gli altri piani. Valorizzato solo negli endpoint get/list.
L'origine da cui è stata creata la sessione.
webapp, slack, teams, api, linear, jira, automation, cli, desktop, code_scan, other L'associazione al profilo di sicurezza specifica della sessione. Valorizzata solo negli endpoint get/list.
Show child attributes
Show child attributes
Ulteriore dettaglio sullo stato corrente della sessione. Quando status è 'running': 'working' (sta lavorando attivamente), 'waiting_for_user' (richiede input dell'utente), 'waiting_for_approval' (in attesa dell'approvazione di un'azione in modalità sicura) oppure 'finished' (attività completata). Quando status è 'suspended': il motivo della sospensione, ad esempio 'inactivity', 'user_request', 'usage_limit_exceeded', 'out_of_credits', 'out_of_quota', 'no_quota_allocation', 'payment_declined', 'org_usage_limit_exceeded', 'user_usage_limit_exceeded', 'total_session_limit_exceeded', 'contract_expired' oppure 'error'. Valorizzato solo negli endpoint get/list.
working, waiting_for_user, waiting_for_approval, finished, inactivity, user_request, usage_limit_exceeded, out_of_credits, out_of_quota, no_quota_allocation, payment_declined, org_usage_limit_exceeded, user_usage_limit_exceeded, total_session_limit_exceeded, contract_expired, error Output strutturato convalidato dalla sessione. Impostato solo sugli endpoint GET/list.
Il nome visualizzato della sottocategoria assegnata alla sessione. 'Other' quando è impostata una categoria ma non è stata assegnata né risolta alcuna sottocategoria. Valorizzato solo negli endpoint get/list.

