---
title: "Get list of mirrors"
method: GET
path: "/mirrors"
tags: ["mirrors"]
---

# Get list of mirrors

`GET /mirrors`

## Query parameters

- `offset` integer
- `limit` integer
- `sort` string[]

## Response `200`

ok

- object
  - `total_count` number
  - `mirrors` MirrorWithChannel[]
    - `id` string, required
    - `name` string, required — Mirror name
    - `source_root` string, uri, required — The upstream location of the channel to mirror.
    - `type` 'conda' | 'python_simple' | 'cran' | 'cve' | 'sbom', required — Type of upstream source to mirror
    - `mode` 'active' | 'passive' | 'redirect', required
    - `state` 'pending' | 'running' | 'completed' | 'failed' | 'deleted' | 'stopping' | 'stopped', required
    - `sync_state` MirrorSyncState — State of current mirror synchronization
      - `count` object
        - `removed` integer — Number of packages, removed from the channel
        - `passive` integer — Number of passively mirrored packages
        - `active` integer — Number of pulled packages
        - `active_planned` integer — Number of total planned packages for pulling
        - `failed` integer — Number of failed packages to pull
        - `package_stat` object
          - `primary` integer — Number of primary packages listed in only specs mirrored
          - `dependencies` integer — Number of dependencies packages mirrored
        - `mirror_filtered` object
          - `cve` integer — Number of packages removed because of CVE filter
          - `date` integer — Number of packages removed because of date filter
          - `signed` integer — Number of packages removed because of missing signatures
          - `license` integer — Number of packages removed because of license filter
          - `only_specs` integer — Number of packages removed because of "only packages" filter
          - `exclude_specs` integer — Number of packages removed because of exclude/include filter
          - `duplicated_legacy_conda` integer — \ Number of packages removed because of legacy package format and having corresponding .conda package
        - `channel_filtered` object
          - `license` integer
          - `exclude_specs` integer
      - `last_ckey` string
      - `last_exception` string
      - `total_steps_count` integer
      - `current_step_number` integer
      - `current_step_description` string
      - `current_step_percentage` integer
      - `bytes_transfered` integer — Total number of bytes transfered during active mirroring
    - `last_run_at` string, required
    - `created_at` string, required
    - `updated_at` string, required
    - `channel` object, required
      - `name` string
      - `privacy` 'private' | 'authenticated' | 'public' — channel privacy channel
    - `subchannel` object
      - `name` string
      - `privacy` 'private' | 'authenticated' | 'public' — channel privacy channel

## Other responses

- `401` — Unauthenticated, no token is provided or token is invalid
- `403` — Access is forbidden
- `500` — Internal server error

---

[API](https://skmtc.net/anaconda/apis/anaconda-server-api.md) · [All operations](https://skmtc.net/anaconda/apis/anaconda-server-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/anaconda/anaconda-server-api/revisions/6aef0cb7a151/schema)
