---
title: "Get mirror details"
method: GET
path: "/channels/{channel_name}/mirrors/{mirror_id}"
tags: ["channels"]
---

# Get mirror details

`GET /channels/{channel_name}/mirrors/{mirror_id}`

## Request

- Base URL: `https://api.anaconda.cloud/api`
- URL: `https://api.anaconda.cloud/api/channels/{channel_name}/mirrors/{mirror_id}`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Auth`
- TypeScript: <https://skmtc.dev/anaconda/apis/anaconda-server-api/docs/channels/:channel_name/mirrors/:mirror_id/get.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `channel_name` string, required
- `mirror_id` string, required

## Response `200`

ok

- Mirror: Configured mirror object
  - `mirror_id` string
  - `mirror_name` string: Mirror name
  - `source_root` string, uri: The upstream location of the channel to mirror.
  - `mirror_type` 'conda' | 'python_simple' | 'cran' | 'cve' | 'sbom': Type of upstream source to mirror
  - `mirror_mode` 'active' | 'passive' | 'redirect'
  - `cron` string
  - `proxy` string, uri, nullable: Proxy server URL configuration to use to attain access to upstream source.
  - `filters` object: Filter directives that are specific to each individual artifact type.
  - `state` 'pending' | 'running' | 'completed' | 'failed' | 'deleted' | 'stopping' | 'stopped'
  - `cause` string: Mirror failure cause
  - `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
  - `next_run_at` string
  - `created_at` string
  - `updated_at` string

## Other responses

- `401`: Unauthenticated, no token is provided or token is invalid
- `403`: Access is forbidden
- `404`: The specified resource was not found
- `500`: Internal server error

---

[API](https://skmtc.dev/anaconda/apis/anaconda-server-api.md) - [All operations](https://skmtc.dev/anaconda/apis/anaconda-server-api/llms.txt) - [OpenAPI document](https://skmtc.dev/anaconda/apis/anaconda-server-api/revisions/6aef0cb7a151?raw)
