# List artifacts

List artifacts for a project.

Endpoint: GET /sto/api/v2/artifacts
Version: 1.0
Security: 

## Query parameters:

  - `accountId` (string, required)
    Harness Account ID
    Example: "abcdef1234567890ghijkl"

  - `orgId` (string, required)
    Harness Organization ID
    Example: "example_org"

  - `projectId` (string, required)
    Harness Project ID
    Example: "example_project"

  - `page` (integer)
    Page number to fetch (starting from 0)
    Example: 4

  - `pageSize` (integer)
    Number of results per page
    Example: 50

  - `sort` (string)
    Sort field
    Enum: "severity", "lastScanAt"

  - `order` (string)
    Sort direction
    Enum: "ASC", "DESC"

  - `search` (string)
    Case-insensitive name substring
    Example: "ng-manager"

  - `types` (string)
    Comma-separated target types. Empty means container.
    Example: "container"

  - `source` (string)
    Comma-separated artifact sources. Use Unknown for null/empty artifact_source.
    Example: "harness,docker_hub,Unknown"

  - `scanTypes` (string)
    Comma-separated scan types
    Example: "CONTAINER,SCA"

  - `scanners` (string)
    Comma-separated scanner names
    Example: "aqua-trivy,snyk"

  - `severity` (string)
    Comma-separated severities with a non-zero occurrence count
    Example: "critical,high"

## Response 200 fields (application/json):

  - `pagination` (object, required)
    Example: {"link":"","page":4,"pageSize":20,"totalItems":230,"totalPages":12}

  - `pagination.link` (string)
    Link-based paging

  - `pagination.page` (integer, required)
    Page number (starting from 0)
    Example: 4

  - `pagination.pageSize` (integer, required)
    Requested page size
    Example: 20

  - `pagination.totalItems` (integer, required)
    Total results available
    Example: 230

  - `pagination.totalPages` (integer, required)
    Total pages available
    Example: 12

  - `results` (array, required)
    Example: [{"executionId":"abcdef1234567890ghijkl","executionSource":"harness","executionUrl":"https://jenkins.example.com/job/42","id":"abcdef1234567890ghijkl","isBaseline":true,"isDigest":false,"issueSeverityCounts":{"critical":3,"high":4,"info":1,"low":2,"medium":5,"unassigned":0},"lastScanAt":1751793300000,"name":"harness/ng-manager","occurrenceSeverityCounts":{"critical":3,"high":4,"info":1,"low":2,"medium":5,"unassigned":0},"pipelineId":"Security_Gate","scanType":{"A nihil cumque molestiae voluptas.":[{"id":"trivy","prettyName":"Trivy"},{"id":"trivy","prettyName":"Trivy"},{"id":"trivy","prettyName":"Trivy"}],"Quis in qui accusantium.":[{"id":"trivy","prettyName":"Trivy"},{"id":"trivy","prettyName":"Trivy"},{"id":"trivy","prettyName":"Trivy"},{"id":"trivy","prettyName":"Trivy"}]},"source":"harness","targetVariantId":"abcdef1234567890ghijkl","type":"container","url":"us-east1-docker.pkg.dev/harness/ng-manager","version":"v2.4.1"},{"executionId":"abcdef1234567890ghijkl","executionSource":"harness","executionUrl":"https://jenkins.example.com/job/42","id":"abcdef1234567890ghijkl","isBaseline":true,"isDigest":false,"issueSeverityCounts":{"critical":3,"high":4,"info":1,"low":2,"medium":5,"unassigned":0},"lastScanAt":1751793300000,"name":"harness/ng-manager","occurrenceSeverityCounts":{"critical":3,"high":4,"info":1,"low":2,"medium":5,"unassigned":0},"pipelineId":"Security_Gate","scanType":{"A nihil cumque molestiae voluptas.":[{"id":"trivy","prettyName":"Trivy"},{"id":"trivy","prettyName":"Trivy"},{"id":"trivy","prettyName":"Trivy"}],"Quis in qui accusantium.":[{"id":"trivy","prettyName":"Trivy"},{"id":"trivy","prettyName":"Trivy"},{"id":"trivy","prettyName":"Trivy"},{"id":"trivy","prettyName":"Trivy"}]},"source":"harness","targetVariantId":"abcdef1234567890ghijkl","type":"container","url":"us-east1-docker.pkg.dev/harness/ng-manager","version":"v2.4.1"},{"executionId":"abcdef1234567890ghijkl","executionSource":"harness","executionUrl":"https://jenkins.example.com/job/42","id":"abcdef1234567890ghijkl","isBaseline":true,"isDigest":false,"issueSeverityCounts":{"critical":3,"high":4,"info":1,"low":2,"medium":5,"unassigned":0},"lastScanAt":1751793300000,"name":"harness/ng-manager","occurrenceSeverityCounts":{"critical":3,"high":4,"info":1,"low":2,"medium":5,"unassigned":0},"pipelineId":"Security_Gate","scanType":{"A nihil cumque molestiae voluptas.":[{"id":"trivy","prettyName":"Trivy"},{"id":"trivy","prettyName":"Trivy"},{"id":"trivy","prettyName":"Trivy"}],"Quis in qui accusantium.":[{"id":"trivy","prettyName":"Trivy"},{"id":"trivy","prettyName":"Trivy"},{"id":"trivy","prettyName":"Trivy"},{"id":"trivy","prettyName":"Trivy"}]},"source":"harness","targetVariantId":"abcdef1234567890ghijkl","type":"container","url":"us-east1-docker.pkg.dev/harness/ng-manager","version":"v2.4.1"}]

  - `results.executionId` (string)
    CI execution identifier. With pipelineId and the request org/project, FE can construct a Harness execution URL when executionUrl is empty.
    Example: "abcdef1234567890ghijkl"

  - `results.executionSource` (string)
    CI/CD platform of the last execution (harness, jenkins, github_actions, gitlab_ci, ...). Distinct from artifact/repo registry source. Omitted when unknown.
    Example: "harness"

  - `results.executionUrl` (string)
    Deep link from scan metadata (non-Harness). For Harness, often empty; FE constructs from pipelineId, executionId, and the request org/project.
    Example: "https://jenkins.example.com/job/42"

  - `results.id` (string, required)
    Target id
    Example: "abcdef1234567890ghijkl"

  - `results.isBaseline` (boolean)
    Whether this variant is the baseline
    Example: true

  - `results.isDigest` (boolean)
    True when the displayed version equals the latest non-empty scan digest on the last execution (tag was a digest, or the artifact was scanned by digest)

  - `results.issueSeverityCounts` (object, required)
    Counts by severity.
    Example: {"critical":3,"high":4,"info":1,"low":2,"medium":5,"unassigned":0}

  - `results.issueSeverityCounts.critical` (integer, required)
    Critical count
    Example: 3

  - `results.issueSeverityCounts.high` (integer, required)
    High count
    Example: 4

  - `results.issueSeverityCounts.info` (integer, required)
    Info count
    Example: 1

  - `results.issueSeverityCounts.low` (integer, required)
    Low count
    Example: 2

  - `results.issueSeverityCounts.medium` (integer, required)
    Medium count
    Example: 5

  - `results.issueSeverityCounts.unassigned` (integer, required)
    Unassigned count

  - `results.lastScanAt` (integer)
    Last scan time in milliseconds since Unix epoch
    Example: 1751793300000

  - `results.name` (string, required)
    Artifact name
    Example: "harness/ng-manager"

  - `results.occurrenceSeverityCounts` (object, required)
    Counts by severity.
    Example: {"critical":3,"high":4,"info":1,"low":2,"medium":5,"unassigned":0}

  - `results.pipelineId` (string)
    Harness pipeline identifier (not the pretty pipelineName). Used with executionId to construct a Harness execution URL when executionUrl is empty.
    Example: "Security_Gate"

  - `results.scanType` (object, required)
    Scan types mapped to scanner ids and display names
    Example: {"Unde cum ipsum accusamus.":[{"id":"trivy","prettyName":"Trivy"},{"id":"trivy","prettyName":"Trivy"},{"id":"trivy","prettyName":"Trivy"}]}

  - `results.source` (string)
    Artifact source for the tracked version's latest execution. Omitted when unknown. Values are snake_case: docker_hub, harness, aws_ecr, google, azure, github, jfrog_artifactory, docker_v2, local_image, local_archive.
    Example: "harness"

  - `results.targetVariantId` (string)
    Target variant id
    Example: "abcdef1234567890ghijkl"

  - `results.type` (string, required)
    Target type
    Enum: "container", "instance", "configuration"

  - `results.url` (string)
    Artifact URL
    Example: "us-east1-docker.pkg.dev/harness/ng-manager"

  - `results.version` (string)
    Version or tag
    Example: "v2.4.1"

## Response 400 fields (application/json):

  - `message` (string, required)
    Example: "Not Found"

  - `status` (integer)
    Example: 404


