curl --request POST \
--url https://api.devin.ai/v3/enterprise/sessions/{devin_id}/messages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"message": "<string>",
"attachment_urls": [
"<string>"
],
"message_as_user_id": "<string>"
}
'import requests
url = "https://api.devin.ai/v3/enterprise/sessions/{devin_id}/messages"
payload = {
"message": "<string>",
"attachment_urls": ["<string>"],
"message_as_user_id": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
message: '<string>',
attachment_urls: ['<string>'],
message_as_user_id: '<string>'
})
};
fetch('https://api.devin.ai/v3/enterprise/sessions/{devin_id}/messages', 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/enterprise/sessions/{devin_id}/messages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'message' => '<string>',
'attachment_urls' => [
'<string>'
],
'message_as_user_id' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.devin.ai/v3/enterprise/sessions/{devin_id}/messages"
payload := strings.NewReader("{\n \"message\": \"<string>\",\n \"attachment_urls\": [\n \"<string>\"\n ],\n \"message_as_user_id\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
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/enterprise/sessions/{devin_id}/messages")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"message\": \"<string>\",\n \"attachment_urls\": [\n \"<string>\"\n ],\n \"message_as_user_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devin.ai/v3/enterprise/sessions/{devin_id}/messages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"message\": \"<string>\",\n \"attachment_urls\": [\n \"<string>\"\n ],\n \"message_as_user_id\": \"<string>\"\n}"
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"
}Invia un messaggio alla sessione
Invia un messaggio a una sessione attiva. La sessione verrà ripresa automaticamente se è sospesa.
curl --request POST \
--url https://api.devin.ai/v3/enterprise/sessions/{devin_id}/messages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"message": "<string>",
"attachment_urls": [
"<string>"
],
"message_as_user_id": "<string>"
}
'import requests
url = "https://api.devin.ai/v3/enterprise/sessions/{devin_id}/messages"
payload = {
"message": "<string>",
"attachment_urls": ["<string>"],
"message_as_user_id": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
message: '<string>',
attachment_urls: ['<string>'],
message_as_user_id: '<string>'
})
};
fetch('https://api.devin.ai/v3/enterprise/sessions/{devin_id}/messages', 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/enterprise/sessions/{devin_id}/messages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'message' => '<string>',
'attachment_urls' => [
'<string>'
],
'message_as_user_id' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.devin.ai/v3/enterprise/sessions/{devin_id}/messages"
payload := strings.NewReader("{\n \"message\": \"<string>\",\n \"attachment_urls\": [\n \"<string>\"\n ],\n \"message_as_user_id\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
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/enterprise/sessions/{devin_id}/messages")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"message\": \"<string>\",\n \"attachment_urls\": [\n \"<string>\"\n ],\n \"message_as_user_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devin.ai/v3/enterprise/sessions/{devin_id}/messages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"message\": \"<string>\",\n \"attachment_urls\": [\n \"<string>\"\n ],\n \"message_as_user_id\": \"<string>\"\n}"
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’autorizzazioneManageAccountSessions a livello Enterprise.Autorizzazioni
Credenziale dell'utente del servizio (prefisso: cog_)
Parametri del percorso
ID sessione di Devin (prefisso: devin-)
"devin-abc123def456"
Parametri della query
Corpo
Risposta
Risposta di successo
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.

