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"
}Archiver la session
Archiver la session et la mettre en veille si elle est actuellement active
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 est l’identifiant de session préfixé par devin- (par exemple, devin-abc123).Autorisations
Nécessite un compte de service ou un jeton d’accès personnel disposant de l’autorisationManageOrgSessions au niveau de l’organisation.
Remarques
L’archivage marque la session et ses sessions descendantes comme archivées (is_archived: true) et met en veille celles qui sont en cours d’exécution. Pour retrouver les sessions archivées, filtrez l’endpoint de liste des sessions sur is_archived.
L’archivage ne supprime pas la session, ne conserve aucune donnée supplémentaire et ne la passe pas en lecture seule :
- Les sessions archivées restent consultables et leurs balises restent modifiables.
- Envoyer un message à une session archivée en veille entraîne sa reprise. Les sessions terminées ne peuvent pas être reprises, qu’elles soient archivées ou non.
- Pour annuler l’archivage, appelez
POST /v3/organizations/{org_id}/sessions/{devin_id}/unarchive. Le désarchivage s’applique uniquement à la session demandée, et non à ses descendantes.
Autorisations
Identifiant de compte de service (préfixe : cog_)
Paramètres de chemin
ID de l’organisation (préfixe : org-)
"org-abc123def456"
ID de session Devin (préfixe : devin-)
"devin-abc123def456"
Réponse
Réponse réussie
Organisation propriétaire. Null pour les sessions détachées, qui appartiennent au compte de leur créateur plutôt qu’à une organisation.
Show child attributes
Show child attributes
new, claimed, running, exit, error, suspended, resuming ID de l’automatisation ayant créé cette session, le cas échéant.
Catégorie de cas d’usage attribuée à la session, si la catégorisation a été effectuée. Renseigné uniquement sur les endpoints 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 Le mode agent Devin avec lequel la session a été créée, après résolution des valeurs par défaut de l’organisation/de l’utilisateur et de l’héritage de la session parente. None lorsque la session exécute un aperçu d’agent qui n’a pas d’équivalent de mode.
normal, fast, fusion, lite, ultra, swe-2-medium, swe-2-high, swe-2-max Dépenses à la demande (dépassement) en USD pour cette session, hors sessions enfants. Champ renseigné uniquement pour les forfaits Teams ; vaut 0 lorsque la session a été entièrement couverte par le quota. Omis pour les autres forfaits. Renseigné uniquement dans les réponses des endpoints get/list.
Origine depuis laquelle la session a été créée.
webapp, slack, teams, api, linear, jira, automation, cli, desktop, code_scan, other L’association au profil de sécurité propre à la session. Renseignée uniquement sur les endpoints get/list.
Show child attributes
Show child attributes
Informations supplémentaires sur le statut actuel de la session. Lorsque status vaut 'running' : 'working' (travaille activement), 'waiting_for_user' (nécessite une saisie de l’utilisateur), 'waiting_for_approval' (en attente d’approbation d’une action en mode sécurisé) ou 'finished' (tâche terminée). Lorsque status vaut 'suspended' : le motif de la suspension, par exemple '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' ou 'error'. Renseigné uniquement sur les endpoints 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 Sortie structurée validée provenant de la session. Renseignée uniquement sur les endpoints GET/list.
Nom d’affichage de la sous-catégorie attribuée à la session. 'Other' lorsqu’une catégorie est définie, mais qu’aucune sous-catégorie n’a été attribuée ou résolue. Renseigné uniquement sur les endpoints get/list.

