---
title: "Upload an artifact to the subchannel (implemented by repo-proxy, can't be called directly)"
method: POST
path: "/channels/{channel_name}/subchannels/{subchannel_name}/artifacts"
tags: ["channels"]
---

# Upload an artifact to the subchannel (implemented by repo-proxy, can't be called directly)

`POST /channels/{channel_name}/subchannels/{subchannel_name}/artifacts`

## Request

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

## Path parameters

- `channel_name` string, required
- `subchannel_name` string, required

## Request body `multipart/form-data`

- object
  - `filetype` 'conda1' | 'anaconda_cve' | 'anaconda_cve_index' | 'anaconda_project' | 'anaconda_env' | 'bdist_wheel' | 'bdist_egg' | 'sdist' | 'cran_source_package' | 'cran_binary_package' | 'jupyter_notebook' | 'docker_repository'
  - `description` string: a string that describes the package that is being uploaded
  - `content` string, binary

## Response `201`

successful file uploaded

## Other responses

- `204`: successful subsequent file uploads
- `400`: Server cannot execute request due to something that is perceived to be a client error
- `401`: Unauthenticated, no token is provided or token is invalid
- `403`: Access is forbidden
- `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)
