Saltar al contenido principal
GET
/
v3
/
enterprise
/
organizations
/
{org_id}
/
audit-logs
Listar registros de auditoría de la organización
curl --request GET \
  --url https://api.devin.ai/v3/enterprise/organizations/{org_id}/audit-logs \
  --header 'Authorization: Bearer <token>'
import requests

url = "https://api.devin.ai/v3/enterprise/organizations/{org_id}/audit-logs"

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/enterprise/organizations/{org_id}/audit-logs', 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/organizations/{org_id}/audit-logs",
  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/enterprise/organizations/{org_id}/audit-logs"

	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/enterprise/organizations/{org_id}/audit-logs")
  .header("Authorization", "Bearer <token>")
  .asString();
require 'uri'
require 'net/http'

url = URI("https://api.devin.ai/v3/enterprise/organizations/{org_id}/audit-logs")

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
{
  "items": [
    {
      "audit_log_id": "<string>",
      "created_at": 123,
      "data": {},
      "org_id": "<string>",
      "service_user_id": "<string>",
      "service_user_name": "<string>",
      "user_email": "<string>",
      "user_id": "<string>"
    }
  ],
  "end_cursor": "<string>",
  "has_next_page": false,
  "total": 123
}
{
  "detail": [
    {
      "loc": [
        "<string>"
      ],
      "msg": "<string>",
      "type": "<string>"
    }
  ]
}

Permisos

Requiere un usuario de servicio con el permiso ManageEnterpriseSettings a nivel de la cuenta Enterprise.

Filtros de tiempo

Este endpoint admite filtros de tiempo opcionales mediante los parámetros de consulta time_after y time_before.
  • Tanto time_after como time_before son marcas de tiempo (timestamps) Unix en segundos, interpretadas como UTC.
  • Si se proporciona time_before, también se debe proporcionar time_after.
  • El intervalo de tiempo entre time_after y time_before debe ser de 100 días o menos.
  • Si no se proporcionan filtros de tiempo, la API devuelve los registros de auditoría para todo el historial disponible (sujeto a paginación).

Autorizaciones

Authorization
string
header
requerido

Credencial de usuario de servicio (prefijo: cog_)

Parámetros de ruta

org_id
string
requerido

ID de la organización (prefijo: org-)

Ejemplo:

"org-abc123def456"

Parámetros de consulta

order
enum<string>
predeterminado:desc
Opciones disponibles:
asc,
desc
time_before
integer | null
time_after
integer | null
after
string | null
first
integer
predeterminado:100
Rango requerido: 1 <= x <= 200
action
enum<string> | null
Opciones disponibles:
login,
create_org,
update_org,
delete_org,
revoke_all_enterprise_api_keys,
add_enterprise_member,
delete_member,
add_member,
assign_roles,
update_role,
create_role,
delete_role,
add_group_membership,
update_group_membership,
delete_group_membership,
create_knowledge,
edit_knowledge,
delete_knowledge,
create_folder,
update_folder,
delete_folder,
create_session,
sleep_session,
terminate_session,
send_message,
create_service_api_key,
revoke_enterprise_api_key,
create_gitlab_integration,
update_gitlab_integration,
reconnect_gitlab_integration,
delete_gitlab_integration,
create_gitlab_app_config,
create_azure_devops_integration,
reconnect_azure_devops_integration,
delete_azure_devops_integration,
remove_repo_from_devin,
update_enterprise_hypervisor_settings,
update_enterprise_settings,
update_org_settings,
update_code_snippet_telemetry,
ai_guardrail_violation,
update_ai_guardrail,
approve_deploy,
approve_test_app,
permission_response,
search_query,
create_org_api_key,
create_user_api_key,
view_org_api_key,
view_user_api_key,
create_secret,
update_secret,
delete_secret,
create_playbook,
update_playbook,
delete_playbook,
enable_persona,
disable_persona,
delete_persona,
start_repo_setup,
delete_repo_setup,
finish_repo_setup,
github_integration_deleted,
create_github_integration,
delete_github_integration,
refresh_github_integration,
create_bitbucket_integration,
delete_bitbucket_integration,
mcp_server_install,
mcp_server_update,
mcp_server_enable,
mcp_server_disable,
mcp_server_delete,
mcp_server_secret_link,
mcp_server_secret_unlink,
mcp_server_oauth_initiate,
mcp_server_oauth_tokens_granted,
mcp_server_oauth_tokens_revoked,
create_mcp_validation_session,
secure_mode_profile_created,
secure_mode_profile_updated,
secure_mode_binding_created,
secure_mode_binding_updated,
secure_mode_binding_deleted,
create_service_user,
update_service_user,
delete_service_user,
assign_service_user_role,
remove_service_user_role,
create_git_permission,
delete_git_permission,
update_git_permission,
create_maintenance_task,
update_maintenance_task,
delete_maintenance_task,
create_snapshot_script,
schedule_snapshot_script,
execute_snapshot_script,
update_repo_setup_steering_knowledge,
delete_repo_setup_steering_knowledge,
set_org_group_limits,
create_join_request,
approve_join_request,
automatic_join_event,
reject_join_request,
create_seat_request,
approve_seat_request,
decline_seat_request,
create_service_user_api_key,
revoke_service_user_api_key,
rotate_service_user_api_key,
create_pat,
revoke_pat,
rotate_pat,
create_blueprint,
create_blueprint_version,
rollback_blueprint_version,
delete_blueprint,
reorder_blueprints,
create_enterprise_blueprint,
create_enterprise_blueprint_version,
rollback_enterprise_blueprint_version,
delete_enterprise_blueprint,
accept_skill_pr,
trigger_blueprint_build,
cancel_blueprint_build,
upload_blueprint_file,
delete_blueprint_file,
sync_repo_blueprints,
detach_blueprint_from_git,
create_blueprint_pr,
pin_build,
unpin_build,
delete_build,
trigger_automation,
create_automation,
update_automation,
delete_automation,
reset_automation_monitor,
update_automation_scratch,
regenerate_automation_webhook_secret,
acknowledge_session_hard_cap,
create_audit_log_export,
update_audit_log_export,
delete_audit_log_export,
create_outpost_pool,
delete_outpost_pool,
claim_outpost_session,
release_outpost_session

Respuesta

Respuesta satisfactoria

items
AuditLogResponse · object[]
requerido
end_cursor
string | null

Cursor para recuperar la siguiente página, o None si se trata de la última página.

has_next_page
boolean
predeterminado:false

Si hay más elementos disponibles después de esta página.

total
integer | null

Conteo total opcional (se puede omitir para mejorar el rendimiento).