> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Inicio de análisis de código mediante la API de Devin

> Guía para iniciar análisis de código de Devin mediante programación, consultar su estado y leer hallazgos con las API v3 de organización y Enterprise

La API de análisis de código permite iniciar análisis, consultar su estado y leer hallazgos sin usar la aplicación web. Todas las operaciones están disponibles en dos ámbitos, siguiendo la misma [separación entre organización y Enterprise](/es/api-reference/v3/overview) que el resto de la API v3:

* **Organización** (`/v3/organizations/{org_id}/code-scans/...`) opera en una única organización y requiere el permiso de ámbito de organización `UseCodeScans` (escritura) o `ViewCodeScans` (lectura).
* **Enterprise** (`/v3/enterprise/...`) abarca todas las organizaciones de Enterprise y requiere el permiso de ámbito Enterprise `UseAccountCodeScans` (escritura) o `ViewAccountCodeScans` (lectura). Los endpoints de creación de análisis y remediación siguen recibiendo un `org_id` en la ruta porque cada análisis pertenece a una sola organización.

Ambos ámbitos se autentican con una API key de [usuario de servicio](/es/api-reference/v3/service-users/members-service-users) o un [token de acceso personal](/es/api-reference/personal-access-tokens) y comparten las mismas estructuras de solicitud y respuesta.

<div id="endpoints">
  ## Endpoints
</div>

| Operación                               | Organización                                                                                                       | Enterprise                                                                                                             |
| --------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------- |
| Iniciar análisis de código              | [`POST /v3/organizations/{org_id}/code-scans`](/es/api-reference/v3/code-scans/organizations-code-scans-start)     | [`POST /v3/enterprise/organizations/{org_id}/code-scans`](/es/api-reference/v3/code-scans/enterprise-code-scans-start) |
| Iniciar análisis de ingesta             | [`POST .../code-scans/ingestion`](/es/api-reference/v3/code-scans/organizations-code-scans-start-ingestion)        | [`POST .../code-scans/ingestion`](/es/api-reference/v3/code-scans/enterprise-code-scans-start-ingestion)               |
| Listar análisis de código               | [`GET /v3/organizations/{org_id}/code-scans/scans`](/es/api-reference/v3/code-scans/organizations-code-scans-list) | [`GET /v3/enterprise/code-scans/scans`](/es/api-reference/v3/code-scans/enterprise-code-scans-list)                    |
| Listar perfiles de análisis de código   | [`GET .../code-scans/profiles`](/es/api-reference/v3/code-scans/organizations-code-scans-profiles)                 | [`GET /v3/enterprise/code-scans/profiles`](/es/api-reference/v3/code-scans/enterprise-code-scans-profiles)             |
| Obtener perfil de análisis de código    | [`GET .../code-scans/profiles/{profile_id}`](/es/api-reference/v3/code-scans/organizations-code-scans-profile)     | [`GET /v3/enterprise/code-scans/profiles/{profile_id}`](/es/api-reference/v3/code-scans/enterprise-code-scans-profile) |
| Listar hallazgos de análisis de código  | [`GET .../code-scans/findings`](/es/api-reference/v3/code-scans/organizations-code-scans-findings)                 | [`GET /v3/enterprise/code-scans/findings`](/es/api-reference/v3/code-scans/enterprise-code-scans-findings)             |
| Obtener métricas de análisis de código  | [`GET .../code-scans/metrics`](/es/api-reference/v3/code-scans/organizations-code-scans-metrics)                   | [`GET /v3/enterprise/code-scans/metrics`](/es/api-reference/v3/code-scans/enterprise-code-scans-metrics)               |
| Corregir hallazgo de análisis de código | [`POST .../findings/{finding_id}/remediate`](/es/api-reference/v3/code-scans/organizations-code-scans-remediate)   | [`POST .../findings/{finding_id}/remediate`](/es/api-reference/v3/code-scans/enterprise-code-scans-remediate)          |

Las mismas operaciones también están disponibles en las rutas `/v3beta1/...`, con estructuras de solicitud y respuesta idénticas. La tabla abarca el flujo de trabajo de análisis; además, la especificación OpenAPI v3 incluye la programación de Auto Scan (`POST .../code-scans/{scan_id}/auto-scan`) y la reasignación de perfiles (`PUT .../code-scans/{scan_id}/profile`) en ambos ámbitos.

Los pasos siguientes usan el ámbito de organización; usa las rutas y los permisos de Enterprise si tu credencial tiene ámbito Enterprise.

<div id="typical-flow">
  ## Flujo habitual
</div>

<Steps>
  <Step title="Elige un perfil (opcional)">
    Llama a [Listar perfiles de análisis de código](/es/api-reference/v3/code-scans/organizations-code-scans-profiles) y elige un perfil con el modo `discover`. Omite el perfil para realizar un análisis de seguridad predeterminado.
  </Step>

  <Step title="Inicia el análisis">
    ```bash theme={null}
    curl -X POST "https://api.devin.ai/v3/organizations/$ORG_ID/code-scans" \
      -H "Authorization: Bearer $DEVIN_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"repo_name": "acme/payments"}'
    ```

    La respuesta es un `201` con el registro del análisis. Guarda `scan_id`. Un `409` indica que la cola de análisis de la organización está llena; vuelve a intentarlo más tarde.
  </Step>

  <Step title="Consulta el estado hasta que finalice">
    Llama a [Listar análisis de código](/es/api-reference/v3/code-scans/organizations-code-scans-list) (filtra por `repo_name`) hasta que el `status` del análisis sea `completed` (o `failed` / `cancelled`). Considera estos tres estados como terminales. `awaiting_user_input` solo se produce en análisis interactivos iniciados desde la aplicación web; los análisis iniciados mediante la API no son interactivos y no entran en ese estado.
  </Step>

  <Step title="Consulta los hallazgos">
    Llama a [Listar hallazgos de análisis de código](/es/api-reference/v3/code-scans/organizations-code-scans-findings) con `scan_id` para recorrer los hallazgos por páginas y, opcionalmente, filtrarlos por `severity` y `status`.
  </Step>

  <Step title="Corrige el hallazgo">
    Llama a [Corregir hallazgo de análisis de código](/es/api-reference/v3/code-scans/organizations-code-scans-remediate) para que Devin abra una pull request que corrija un hallazgo.
  </Step>
</Steps>

<div id="ingestion-scans">
  ## Escaneos de ingesta
</div>

Para que Devin clasifique los hallazgos generados por otro escáner, cree un perfil en modo `ingest` en la aplicación web, suba el informe del escáner mediante la [API de archivos adjuntos](/es/api-reference/v3/attachments/post-organizations-attachments) (un endpoint de ámbito de organización que requiere el permiso de organización `UseDevinSessions`, además de los permisos de escaneo de código) y, a continuación, invoque [Iniciar análisis de ingesta](/es/api-reference/v3/code-scans/organizations-code-scans-start-ingestion) (o el [equivalente para Enterprise](/es/api-reference/v3/code-scans/enterprise-code-scans-start-ingestion)) con `profile_id` y `attachment_urls`.
