> ## 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.

# Iniciar análisis de código (API de Devin)

> Inicia un nuevo análisis de código de Devin en un repositorio de una organización mediante la API Enterprise v3, opcionalmente con un perfil de análisis o un commit

<div id="permissions">
  ## Permisos
</div>

Requiere un [usuario de servicio](/es/api-reference/v3/service-users/members-service-users) o un [token de acceso personal](/es/api-reference/personal-access-tokens) con el permiso `UseAccountCodeScans` en el nivel empresarial.

<div id="behavior">
  ## Comportamiento
</div>

Pone en cola un nuevo análisis de código de `repo_name` en la organización indicada. El análisis se inicia de forma asíncrona mediante el despachador de análisis; la respuesta es el registro del análisis con un `status` inicial de `waiting` o `pending`. Consulte periódicamente [List Code Scans](/es/api-reference/v3/code-scans/enterprise-code-scans-list) para seguir el progreso y [List Code Scan Findings](/es/api-reference/v3/code-scans/enterprise-code-scans-findings) (filtrado por `scan_id`) para consultar los resultados cuando el análisis alcance el estado `completed`.

El análisis se atribuye al principal que realiza la llamada (el usuario de servicio o PAT que realizó la solicitud).

<div id="request-fields">
  ### Campos de la solicitud
</div>

* `repo_name` (obligatorio): nombre completo del repositorio; por ejemplo, `owner/repo`. El repositorio ya debe ser accesible mediante la integración de Git de la organización.
* `host`: host de Git del repositorio, si no se puede inferir.
* `profile_id`: un [perfil de análisis](/es/api-reference/v3/code-scans/enterprise-code-scans-profiles) que se aplicará. Use [Start Ingestion Scan](/es/api-reference/v3/code-scans/enterprise-code-scans-start-ingestion) para perfiles en modo `ingest`.
* `scan_type`: tipo de análisis que se ejecutará. Debe coincidir con el tipo de análisis del perfil cuando se proporciona `profile_id`. De forma predeterminada, usa el tipo del perfil o `security` para análisis sin perfil. Los tipos de análisis distintos de los de seguridad requieren un perfil.
* `commit_sha`: commit que se extraerá antes del análisis. De forma predeterminada, usa la cabecera de la rama predeterminada del repositorio.

<div id="errors">
  ### Errores
</div>

* `400` cuando `scan_type` entra en conflicto con el perfil o se proporciona un `scan_type` que no es de seguridad sin un perfil.
* `403` cuando la organización está restringida a escaneos de solo ingesta y no se proporciona un perfil en modo `ingest`.
* `404` cuando la organización, el repositorio o el perfil no son visibles para la cuenta Enterprise.
* `409` cuando el backlog de escaneos de la organización está lleno. Vuelve a intentarlo más tarde.


## OpenAPI

````yaml es/v3-openapi.yaml POST /v3/enterprise/organizations/{org_id}/code-scans
openapi: 3.1.0
info:
  description: API de Devin v3 con autenticación mediante usuario de servicio y RBAC
  title: Devin API v3
  version: 3.0.0
servers: []
security:
  - bearerAuth: []
paths:
  /v3/enterprise/organizations/{org_id}/code-scans:
    post:
      tags:
        - code-scans
      summary: Iniciar análisis de código
      description: >-
        Inicia un nuevo análisis de código en un repositorio de una
        organización.


        El análisis se pone en cola y el despachador de análisis lo inicia de
        forma asíncrona.

        El análisis se atribuye a la entidad que realiza la llamada (el usuario
        de servicio o PAT

        que hizo la solicitud). Devuelve ``409`` cuando la cola de análisis

        de la organización ha alcanzado su capacidad máxima.
      operationId: >-
        handle_start_code_scan_v3_enterprise_organizations__org_id__code_scans_post
      parameters:
        - description: 'ID de la organización (prefijo: org-)'
          in: path
          name: org_id
          required: true
          schema:
            example: org-abc123def456
            title: Org Id
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CodeScanCreateRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CodeScanResponse'
          description: Respuesta satisfactoria
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: No autorizado
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Prohibido
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: No encontrado
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Conflicto
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Contenido no procesable
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Demasiadas solicitudes
components:
  schemas:
    CodeScanCreateRequest:
      description: Cuerpo de la solicitud para iniciar un nuevo análisis de código.
      properties:
        commit_sha:
          anyOf:
            - type: string
            - type: 'null'
          description: Commit que se debe extraer antes de ejecutar el análisis.
          title: Commit Sha
        host:
          anyOf:
            - type: string
            - type: 'null'
          description: Host de Git del repositorio, si se conoce.
          title: Host
        profile_id:
          anyOf:
            - type: string
            - type: 'null'
          description: Perfil de análisis que se aplicará al análisis.
          title: Profile Id
        repo_name:
          description: Nombre completo del repositorio que se va a analizar.
          title: Repo Name
          type: string
        scan_type:
          anyOf:
            - enum:
                - security
                - performance
                - db-queries
                - test-coverage
                - dead-code
                - code-quality
                - telemetry
                - accessibility
                - general
                - migration-docs
              type: string
            - type: 'null'
          description: >-
            Tipo de análisis que se ejecutará. Debe coincidir con el tipo de
            análisis del perfil cuando se proporciona un perfil; de forma
            predeterminada, se usa el tipo del perfil o 'security' para análisis
            sin perfil. Los tipos que no son de seguridad requieren un perfil y
            se rechazan sin uno.
          title: Scan Type
      required:
        - repo_name
      title: CodeScanCreateRequest
      type: object
    CodeScanResponse:
      description: Un análisis de código individual.
      properties:
        created_at:
          description: Momento en que se creó el análisis (segundos Unix).
          title: Created At
          type: integer
        host:
          anyOf:
            - type: string
            - type: 'null'
          description: Host de Git del repositorio, si se conoce.
          title: Host
        org_id:
          description: Organización a la que pertenece el análisis.
          title: Org Id
          type: string
        profile:
          anyOf:
            - $ref: '#/components/schemas/CodeScanProfileResponse'
            - type: 'null'
          description: Perfil con el que se ejecutó el análisis, si corresponde.
        repo_name:
          description: >-
            Repositorio principal del análisis. Los análisis de varios
            repositorios abarcan repositorios adicionales que no se enumeran
            aquí.
          title: Repo Name
          type: string
        scan_id:
          description: Identificador único del análisis.
          title: Scan Id
          type: string
        scan_type:
          description: Tipo de análisis, establecido al crearlo.
          enum:
            - security
            - performance
            - db-queries
            - test-coverage
            - dead-code
            - code-quality
            - telemetry
            - accessibility
            - general
            - migration-docs
          title: Scan Type
          type: string
        status:
          description: >-
            Estado del análisis: waiting, pending, running, awaiting_user_input,
            completed, failed o cancelled.
          enum:
            - waiting
            - pending
            - running
            - awaiting_user_input
            - completed
            - failed
            - cancelled
          title: Status
          type: string
      required:
        - scan_id
        - org_id
        - repo_name
        - host
        - status
        - profile
        - scan_type
        - created_at
      title: CodeScanResponse
      type: object
    ProblemDetail:
      description: >-
        Cuerpo de error RFC 9457 application/problem+json para la API v3.


        detail se conserva del cuerpo heredado {"detail": ...} por
        compatibilidad con versiones anteriores; los

        otros miembros son adicionales. errors contiene errores de validación

        a nivel de campo (solo 422).
      properties:
        detail:
          anyOf:
            - type: string
            - type: 'null'
          description: Explicación legible para humanos específica de esta ocurrencia.
          title: Detail
        errors:
          anyOf:
            - items:
                additionalProperties: true
                type: object
              type: array
            - type: 'null'
          description: Errores de validación por campo (solo en respuestas 422).
          title: Errors
        instance:
          anyOf:
            - type: string
            - type: 'null'
          description: Una referencia URI (la ruta de la solicitud) para esta ocurrencia.
          title: Instance
        status:
          description: El código de estado HTTP.
          title: Status
          type: integer
        title:
          description: Un breve resumen del tipo de problema, legible para humanos.
          title: Title
          type: string
        type:
          default: about:blank
          description: Una referencia URI que identifica el tipo de problema.
          title: Type
          type: string
      required:
        - title
        - status
      title: ProblemDetail
      type: object
    CodeScanProfileResponse:
      description: Resumen del perfil con el que se ejecutó un análisis.
      properties:
        name:
          description: Nombre del perfil.
          title: Name
          type: string
        profile_id:
          description: Identificador único del perfil.
          title: Profile Id
          type: string
      required:
        - profile_id
        - name
      title: CodeScanProfileResponse
      type: object
  securitySchemes:
    bearerAuth:
      description: 'Credencial de usuario de servicio (prefijo: cog_)'
      scheme: bearer
      type: http

````