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

# Obtener detecciones de un escaneo

> Obtiene una lista de detecciones de un escaneo concreto. De forma predeterminada, los resultados se ordenan por fecha de creación, del más reciente al más antiguo, con el ID de la detección como desempate para una paginación estable.

También disponible en `/api/v1/scan/{scan_id}/issues`, el nombre anterior de este endpoint, que sigue siendo compatible con los mismos parámetros y la misma respuesta.



## OpenAPI

````yaml /es/api-reference/openapi.json get /scan/{scan_id}/detections
openapi: 3.0.0
info:
  title: API de Corgea
  version: 1.0.0
  description: >-
    API para interactuar con las funciones de escaneo y gestión de
    vulnerabilidades de Corgea
servers:
  - url: https://www.corgea.app/api/v1
    description: Servidor de producción
  - url: https://eu.corgea.app/api/v1
    description: Servidor de producción de la UE
security:
  - CorgeaToken: []
  - BearerAuth: []
paths:
  /scan/{scan_id}/detections:
    get:
      tags:
        - Detecciones
      summary: Obtener detecciones de un escaneo
      description: >-
        Obtiene una lista de detecciones de un escaneo concreto. De forma
        predeterminada, los resultados se ordenan por fecha de creación, del más
        reciente al más antiguo, con el ID de la detección como desempate para
        una paginación estable.


        También disponible en `/api/v1/scan/{scan_id}/issues`, el nombre
        anterior de este endpoint, que sigue siendo compatible con los mismos
        parámetros y la misma respuesta.
      operationId: getScanIssues
      parameters:
        - name: scan_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: ID del escaneo
        - name: page
          in: query
          required: false
          schema:
            type: integer
            default: 1
          description: Número de página de la paginación
        - name: page_size
          in: query
          required: false
          schema:
            type: integer
            default: 20
            maximum: 50
          description: Número de resultados por página
        - name: urgency
          in: query
          required: false
          schema:
            type: string
          description: >-
            Filtra por niveles de urgencia (valores separados por comas).
            Valores válidos: CR, HI, ME, LO
          example: CR,HI
        - name: status
          in: query
          required: false
          schema:
            type: string
          description: >-
            Filtra por estado (valores separados por comas). Valores válidos:
            fixed, false_positive, accepted_risk, open, fix_in_progress,
            duplicate
          example: open,fix_in_progress
        - name: show_false_positives
          in: query
          required: false
          schema:
            type: boolean
            default: false
          description: >-
            Incluye los hallazgos marcados como falsos positivos (de forma
            manual o mediante IA). De forma predeterminada, los falsos positivos
            se excluyen.
          example: true
        - name: include_reachability
          in: query
          required: false
          schema:
            type: boolean
            default: false
          description: Incluye el resumen de alcanzabilidad de endpoints de cada hallazgo.
        - name: language
          in: query
          required: false
          schema:
            type: string
          description: >-
            Filtra por lenguaje de programación (sin distinguir mayúsculas de
            minúsculas)
          example: python
        - name: file_path
          in: query
          required: false
          schema:
            type: string
          description: Filtra por ruta de archivo (coincidencia parcial)
          example: src/auth
        - name: classification
          in: query
          required: false
          schema:
            type: string
          description: >-
            Filtra por clasificación (coincidencia parcial) o identificador CWE.
            La coincidencia de CWE ignora los ceros iniciales y compara el
            identificador completo: CWE-79 coincide con CWE-079, pero no con
            CWE-798.
          example: CWE-89
        - name: file_path_exact
          in: query
          required: false
          schema:
            type: string
          description: >-
            Filtra por una ruta de archivo exacta. A diferencia de file_path, no
            coincide con rutas que solo contienen el valor, por lo que es seguro
            para profundizar en un grupo de archivos devuelto por el endpoint de
            grupos.
          example: src/api/auth.py
        - name: search
          in: query
          required: false
          schema:
            type: string
          description: Búsqueda de texto libre en la clasificación y la ruta de archivo
          example: sql injection
        - name: cwe
          in: query
          required: false
          schema:
            type: string
          description: >-
            Filtra por uno o varios identificadores CWE (valores separados por
            comas), con la misma coincidencia que classification. Úsalo para
            profundizar en un grupo de CWE devuelto por el endpoint de grupos.
          example: CWE-79,CWE-89
        - name: sla_status
          in: query
          required: false
          schema:
            type: string
          description: >-
            Filtra por estado del SLA (valores separados por comas). Valores
            válidos: overdue, escalated
          example: overdue
        - name: sort_by
          in: query
          required: false
          schema:
            type: string
            enum:
              - created_at
              - '-created_at'
              - urgency
              - '-urgency'
              - status
              - '-status'
              - classification
              - '-classification'
          description: >-
            Ordena los resultados por campo (antepone '-' para usar el orden
            descendente). El ID del problema resuelve los empates de ordenación.
          example: '-created_at'
      responses:
        '200':
          description: Hallazgos obtenidos correctamente
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: ok
                  page:
                    type: integer
                  total_pages:
                    type: integer
                  total_issues:
                    type: integer
                  issues:
                    type: array
                    items:
                      $ref: '#/components/schemas/Issue'
        '403':
          description: Permiso denegado
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Permission denied
        '404':
          description: >-
            Escaneo no encontrado o, con el control de acceso a proyectos
            activado, quien realiza la solicitud no es administrador de la
            empresa ni tiene acceso al proyecto del escaneo.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: error
                  message:
                    type: string
                    example: Scan not found
components:
  schemas:
    Issue:
      type: object
      properties:
        finding_id:
          type: string
          format: uuid
          nullable: true
          description: >-
            ID del finding del que esta incidencia es una detección: el mismo
            entre reescaneos. Null en una incidencia ingerida antes de que
            existieran los findings.
        id:
          type: string
          format: uuid
        classification:
          type: object
          nullable: true
          description: >-
            Si el CWE es desconocido o la clasificación es una etiqueta de texto
            libre, id y name contienen la etiqueta de clasificación original y
            description es null. Una clasificación vacía se devuelve como null.
          properties:
            id:
              type: string
              example: CWE-123
            name:
              type: string
              example: Vulnerability Name
            description:
              type: string
              nullable: true
        urgency:
          type: string
          enum:
            - CR
            - HI
            - ME
            - LO
          description: 'Código de urgencia: CR (crítica), HI (alta), ME (media) o LO (baja).'
        created_at:
          type: string
          format: date-time
        first_detection_date:
          type: string
          format: date-time
          description: >-
            Fecha en que Corgea detectó este hallazgo por primera vez, entre
            todos los escaneos en los que apareció. Coincide con created_at
            cuando esta es la primera detección.
        status:
          type: string
          nullable: true
          enum:
            - open
            - fix_in_progress
            - fixed
            - false_positive
            - accepted_risk
            - duplicate
        sla_status:
          type: string
          nullable: true
          enum:
            - overdue
            - escalated
          description: >-
            Estado de incumplimiento del SLA. null cuando el hallazgo no está
            vencido ni escalado.
        location:
          $ref: '#/components/schemas/IssueLocation'
        auto_triage:
          $ref: '#/components/schemas/AutoTriage'
        auto_fix_suggestion:
          $ref: '#/components/schemas/AutoFixSuggestion'
        assigned_to:
          $ref: '#/components/schemas/AssignedTo'
        reachability:
          $ref: '#/components/schemas/IssueReachabilitySummary'
    IssueLocation:
      type: object
      properties:
        file:
          type: object
          properties:
            name:
              type: string
            language:
              type: string
            path:
              type: string
            git_hash:
              type: string
              nullable: true
              description: >-
                Hash de Git registrado para el archivo escaneado. Solo lo
                devuelven los endpoints que listan hallazgos.
        project:
          type: object
          properties:
            name:
              type: string
            branch:
              type: string
            git_sha:
              type: string
        line_number:
          type: integer
        sink_line_number:
          type: integer
          nullable: true
          description: >-
            Línea del sumidero (sink) del flujo de datos cuando está en este
            archivo; en caso contrario, null. Solo se devuelve al obtener un
            hallazgo individual.
    AutoTriage:
      type: object
      properties:
        false_positive_detection:
          type: object
          properties:
            status:
              type: string
              enum:
                - valid
                - false_positive
                - pending
            reasoning:
              description: >-
                Motivo de la clasificación como falso positivo cuando está
                disponible, incluso si no se generó ninguna corrección.
              type: string
              nullable: true
    AutoFixSuggestion:
      type: object
      properties:
        id:
          type: string
          format: uuid
        status:
          type: string
          enum:
            - fix_available
            - no_fix
            - generating
            - false_positive
            - on_hold
            - unsupported
            - plan
          description: >-
            Disponibilidad actual de la corrección. Consultar un hallazgo inicia
            de forma predeterminada la generación en segundo plano de una
            corrección que falte y cumpla los requisitos. Mientras esa
            generación está pendiente, el estado es generating; vuelve a
            consultar el hallazgo hasta que finalice. Si la generación está
            desactivada o no se produce ninguna corrección, el estado es no_fix.
        patch:
          type: object
          properties:
            diff:
              type: string
              description: >-
                Parche en formato diff unificado. Devuelve una cadena vacía
                cuando la corrección no tiene diff.
            explanation:
              type: string
              description: Explicación de cómo la corrección resuelve la vulnerabilidad
            full_code:
              type: string
              description: >-
                Código fuente completo del archivo con la corrección aplicada.
                Solo se devuelve cuando show_full_code es true y existe una
                corrección.
    AssignedTo:
      type: object
      nullable: true
      description: >-
        Usuario asignado al hallazgo, o null cuando el hallazgo no está
        asignado.
      properties:
        id:
          type: string
          description: ID del usuario asignado.
        email:
          type: string
          format: email
          description: Dirección de correo electrónico del usuario asignado.
        name:
          type: string
          nullable: true
          description: >-
            Nombre para mostrar del usuario asignado, o null si no está
            disponible.
    IssueReachabilitySummary:
      type: object
      description: >-
        Resumen de alcanzabilidad de endpoints que se devuelve cuando
        include_reachability es true.
      properties:
        is_reachable:
          type: boolean
        endpoint_count:
          type: integer
  securitySchemes:
    CorgeaToken:
      type: apiKey
      in: header
      name: CORGEA-TOKEN
      description: >-
        Clave de API para la autenticación Se rechazan los tokens de API de
        usuarios inactivos.
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Token de acceso OAuth2 (JWT) en el encabezado Authorization

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.