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

# Code-Scan starten (Devin API)

> Starten Sie über die v3-Organisations-API einen neuen Devin-Code-Scan für ein Repository, optional mit einem Scan-Profil oder Commit-SHA

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

Erfordert einen [Service-Benutzer](/de/api-reference/v3/service-users/members-service-users) oder ein [persönliches Zugriffstoken](/de/api-reference/personal-access-tokens) mit der Berechtigung `UseCodeScans` auf Organisationsebene.

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

Stellt einen neuen Code-Scan für `repo_name` in der Organisation in die Warteschlange. Der Scan wird vom Scan-Dispatcher asynchron gestartet; die Antwort enthält den Scan-Datensatz mit dem anfänglichen `status` `waiting` oder `pending`. Rufen Sie [Code-Scans auflisten](/de/api-reference/v3/code-scans/organizations-code-scans-list) auf, um den Fortschritt zu verfolgen, und [Code-Scan-Befunde auflisten](/de/api-reference/v3/code-scans/organizations-code-scans-findings) (gefiltert nach `scan_id`), um die Ergebnisse abzurufen, sobald der Scan den Status `completed` erreicht.

Der Scan wird dem aufrufenden Principal zugeordnet (dem Service-Benutzer oder PAT, der die Anfrage gestellt hat). Das Äquivalent mit Enterprise-Geltungsbereich ist [Code-Scan starten (Enterprise)](/de/api-reference/v3/code-scans/enterprise-code-scans-start).

<div id="request-fields">
  ### Anfragefelder
</div>

* `repo_name` (erforderlich): vollständiger Repository-Name, z. B. `owner/repo`. Das Repository muss bereits über die Git-Integration der Organisation zugänglich sein.
* `host`: Git-Host des Repositorys, falls er nicht abgeleitet werden kann.
* `profile_id`: anzuwendendes [Scan-Profil](/de/api-reference/v3/code-scans/organizations-code-scans-profiles). Verwenden Sie [Ingestion-Scan starten](/de/api-reference/v3/code-scans/organizations-code-scans-start-ingestion) für Profile im `ingest`-Modus.
* `scan_type`: Typ des auszuführenden Scans. Wenn `profile_id` angegeben ist, muss er dem Scan-Typ des Profils entsprechen. Standardmäßig wird der Typ des Profils verwendet, bei Scans ohne Profil `security`. Nicht sicherheitsbezogene Scan-Typen erfordern ein Profil.
* `commit_sha`: Commit, der vor dem Scannen ausgecheckt werden soll. Standardmäßig wird der aktuelle Stand des Standard-Branches des Repositorys verwendet.

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

* `400`, wenn `scan_type` mit dem Profil in Konflikt steht oder ein nicht sicherheitsbezogener `scan_type` ohne Profil angegeben wird.
* `403`, wenn die Organisation auf reine Ingestion-Scans beschränkt ist und kein Profil im `ingest`-Modus angegeben wird.
* `404`, wenn das Repository oder Profil für die Organisation nicht sichtbar ist.
* `409`, wenn der Scan-Backlog der Organisation ausgelastet ist. Versuchen Sie es später erneut.


## OpenAPI

````yaml de/v3-openapi.yaml POST /v3/organizations/{org_id}/code-scans
openapi: 3.1.0
info:
  description: Devin v3 API mit Service-User-Authentifizierung und RBAC
  title: Devin API v3
  version: 3.0.0
servers: []
security:
  - bearerAuth: []
paths:
  /v3/organizations/{org_id}/code-scans:
    post:
      tags:
        - code-scans
      summary: Code-Scan starten
      description: >-
        Startet einen neuen Code-Scan für ein Repository in der Organisation.


        Der Scan wird in die Warteschlange aufgenommen und asynchron vom
        Scan-Dispatcher gestartet.

        Der Scan wird dem aufrufenden Principal zugeordnet (dem Service-Benutzer
        oder PAT,

        der die Anfrage gestellt hat). Gibt ``409`` zurück, wenn das Scan-

        Backlog der Organisation seine Kapazitätsgrenze erreicht hat.
      operationId: handle_start_code_scan_v3_organizations__org_id__code_scans_post
      parameters:
        - description: 'Organisations-ID (Präfix: 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: Erfolgreiche Antwort
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Nicht autorisiert
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Verboten
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Nicht gefunden
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Konflikt
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Nicht verarbeitbarer Inhalt
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Zu viele Anfragen
components:
  schemas:
    CodeScanCreateRequest:
      description: Request-Body zum Starten eines neuen Code-Scans.
      properties:
        commit_sha:
          anyOf:
            - type: string
            - type: 'null'
          description: Commit, der vor dem Scan ausgecheckt werden soll.
          title: Commit Sha
        host:
          anyOf:
            - type: string
            - type: 'null'
          description: Git-Host des Repositorys, falls bekannt.
          title: Host
        profile_id:
          anyOf:
            - type: string
            - type: 'null'
          description: Scan-Profil, das auf den Scan angewendet werden soll.
          title: Profile Id
        repo_name:
          description: Vollständiger Name des zu scannenden Repositorys.
          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: >-
            Art des auszuführenden Scans. Muss dem Scan-Typ des Profils
            entsprechen, wenn ein Profil angegeben ist; standardmäßig wird der
            Typ des Profils verwendet, oder 'security' für Scans ohne Profil.
            Nicht sicherheitsbezogene Typen erfordern ein Profil und werden ohne
            eines abgelehnt.
          title: Scan Type
      required:
        - repo_name
      title: CodeScanCreateRequest
      type: object
    CodeScanResponse:
      description: Ein einzelner Code-Scan.
      properties:
        created_at:
          description: Zeitpunkt, zu dem der Scan erstellt wurde (Unix-Sekunden).
          title: Created At
          type: integer
        host:
          anyOf:
            - type: string
            - type: 'null'
          description: Git-Host des Repositorys, falls bekannt.
          title: Host
        org_id:
          description: Organisation, zu der der Scan gehört.
          title: Org Id
          type: string
        profile:
          anyOf:
            - $ref: '#/components/schemas/CodeScanProfileResponse'
            - type: 'null'
          description: Profil, unter dem der Scan ausgeführt wurde, falls vorhanden.
        repo_name:
          description: >-
            Primäres Repository des Scans. Multi-Repo-Scans umfassen zusätzliche
            Repositorys, die hier nicht aufgeführt sind.
          title: Repo Name
          type: string
        scan_id:
          description: Eindeutige Kennung des Scans.
          title: Scan Id
          type: string
        scan_type:
          description: Typ des Scans, bei der Erstellung festgelegt.
          enum:
            - security
            - performance
            - db-queries
            - test-coverage
            - dead-code
            - code-quality
            - telemetry
            - accessibility
            - general
            - migration-docs
          title: Scan Type
          type: string
        status:
          description: >-
            Scan-Status: waiting, pending, running, awaiting_user_input,
            completed, failed oder 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: >-
        RFC 9457 application/problem+json-Fehlertext für die v3-API.


        detail wird aus dem Legacy-Body {"detail": ...} aus Gründen der
        Abwärtskompatibilität beibehalten; die

        anderen Member sind additiv. errors enthält Validierungsfehler auf
        Feldebene

        (nur 422).
      properties:
        detail:
          anyOf:
            - type: string
            - type: 'null'
          description: Eine menschenlesbare Erklärung, die speziell für diesen Fall gilt.
          title: Detail
        errors:
          anyOf:
            - items:
                additionalProperties: true
                type: object
              type: array
            - type: 'null'
          description: Validierungsfehler auf Feldebene (nur bei 422-Antworten).
          title: Errors
        instance:
          anyOf:
            - type: string
            - type: 'null'
          description: Eine URI-Referenz (der Anfragepfad) für diesen Fall.
          title: Instance
        status:
          description: Der HTTP-Statuscode.
          title: Status
          type: integer
        title:
          description: Eine kurze, menschenlesbare Zusammenfassung des Problemtyps.
          title: Title
          type: string
        type:
          default: about:blank
          description: Eine URI-Referenz, die den Problemtyp identifiziert.
          title: Type
          type: string
      required:
        - title
        - status
      title: ProblemDetail
      type: object
    CodeScanProfileResponse:
      description: Zusammenfassung des Profils, unter dem ein Scan ausgeführt wurde.
      properties:
        name:
          description: Name des Profils.
          title: Name
          type: string
        profile_id:
          description: Eindeutige Kennung des Profils.
          title: Profile Id
          type: string
      required:
        - profile_id
        - name
      title: CodeScanProfileResponse
      type: object
  securitySchemes:
    bearerAuth:
      description: 'Servicebenutzer-Anmeldedaten (Präfix: cog_)'
      scheme: bearer
      type: http

````