curl --request GET \
--url https://api.devin.ai/v3/organizations/{org_id}/automations/schemas \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.devin.ai/v3/organizations/{org_id}/automations/schemas"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.devin.ai/v3/organizations/{org_id}/automations/schemas', 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}/automations/schemas",
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://api.devin.ai/v3/organizations/{org_id}/automations/schemas"
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://api.devin.ai/v3/organizations/{org_id}/automations/schemas")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devin.ai/v3/organizations/{org_id}/automations/schemas")
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{
"default_net_policy": {
"allow": [
{
"hostname": "<string>"
}
]
},
"sources": {},
"update_semantics": "<string>",
"security_profile": {
"governs_network": true,
"mcp_servers": [
"<string>"
],
"name": "<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"
}Obtener esquemas de eventos de automatización
Devuelve todos los esquemas de eventos de activadores compatibles, indexados por origen y luego por nombre de evento.
Cada esquema describe los campos de carga útil del evento, los operadores que admiten sus
condiciones y los verbos replies válidos, para que los clientes puedan
construir triggers válidos para los endpoints de creación y actualización.
curl --request GET \
--url https://api.devin.ai/v3/organizations/{org_id}/automations/schemas \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.devin.ai/v3/organizations/{org_id}/automations/schemas"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.devin.ai/v3/organizations/{org_id}/automations/schemas', 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}/automations/schemas",
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://api.devin.ai/v3/organizations/{org_id}/automations/schemas"
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://api.devin.ai/v3/organizations/{org_id}/automations/schemas")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devin.ai/v3/organizations/{org_id}/automations/schemas")
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{
"default_net_policy": {
"allow": [
{
"hostname": "<string>"
}
]
},
"sources": {},
"update_semantics": "<string>",
"security_profile": {
"governs_network": true,
"mcp_servers": [
"<string>"
],
"name": "<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"
}Permisos
Requiere un usuario de servicio o un token de acceso personal que tenga el permisoViewOrgAutomations a nivel de organización.
Uso
Llame a este endpoint antes de crear automatizaciones: devuelve todos los tipos de eventos desencadenantes compatibles (agrupados por origen y, después, por nombre de evento), junto con sus campos de payload, los operadores admitidos por sus condiciones y los verbosreplies válidos, para que pueda crear triggers válidos para los endpoints de creación y actualización. Se omiten los orígenes que no están habilitados para la organización.Autorizaciones
Credencial de usuario de servicio (prefijo: cog_)
Parámetros de ruta
ID de organización (prefijo: org-)
"org-abc123def456"
Parámetros de consulta
Resolver default_net_policy y security_profile para una operación de creación que asigne el ID de este perfil a security_profile.profile_id. Requiere el permiso de gestión de perfiles de seguridad.
Respuesta
Respuesta correcta
Política de red que los clientes deben usar como punto de partida para nuevas automatizaciones: la política del despliegue que solo permite Git Manager (añada únicamente los destinos que requiere la tarea) o null si el perfil de seguridad que las rige (consulte security_profile) tiene una política de red. En ese caso, las sesiones usan la política del perfil; omita session_settings.net_policy a menos que la tarea requiera restricciones adicionales.
Show child attributes
Show child attributes
Origen del evento → nombre del evento → esquema.
Show child attributes
Show child attributes
Semántica PATCH activa para esta organización: 'replace_groups' (un grupo de configuración presente en la solicitud reemplaza por completo al grupo almacenado) o 'merge_patch' (RFC 7396 para objetos: los miembros omitidos de un grupo presente conservan sus valores almacenados; los valores null explícitos los borran; la pertenencia a listas sigue reemplazándose por completo —la eliminación consiste en reenviar la lista sin el elemento—, pero cada elemento enviado se fusiona con el elemento almacenado del mismo tipo cuando ese tipo aparece exactamente una vez en ambos lados; los tipos repetidos deben volver a declararse íntegramente). Enumeración abierta: los clientes deben admitir valores nuevos.
Perfil de seguridad que rige las sesiones de automatización de esta organización, o null si no se aplica ninguno.
Show child attributes
Show child attributes

