Skip to main content
Control who can access packages in a channel by associating the channel with a group. This allows you to set separate permissions per package. You can further control access to your packages within organizations and groups with . Tokens control access to private repositories, collections, or packages on Anaconda.org. Additionally, the degree of access a token grants is completely configurable at the time of generation. You can generate multiple tokens to control which groups of users have access to certain features if they have the appropriate token.
Individual paid plans with private packages are a legacy offering from Anaconda.org that are no longer available. However, anyone who had private packages in the past still has the ability to have those hosted privately.

Generating tokens

Tokens provide varying degrees of access to content within a specified depending on the scope assignment. If you need to separate permission levels by package, you can create an organization and groups within that organization.
By default, tokens expire after one year.
  • CLI
  • Anaconda.org
  1. Open Anaconda Prompt (Terminal on macOS/Linux) and run the following command:
    anaconda auth --create --name <YOUR_TOKEN_NAME> --scopes '<SCOPE1> <SCOPE2>'
    
    Replace <YOUR_TOKEN_NAME> with a name of your choosing.
    Replace <SCOPE> with a scope(s) from the Scopes dropdown below.
    This command generates a random alphanumeric string. That string is your token! You can distribute your token to other Anaconda.org users to provide them with a specific, limited set of permissions to interact with your Anaconda.org assets.
  2. Add the token to your channel path in your .condarc file by running the following command:
    conda config --add channels https://conda.anaconda.org/t/<TOKEN>/<CHANNEL>
    
    Replace <TOKEN> with your token string.
    Replace <CHANNEL> with the channel name.
    Or, add a channel with a token and a :
    conda config --add channels https://conda.anaconda.org/t/<TOKEN>/<CHANNEL>/label/<YOUR_TOKEN_NAME>
    
    Replace <TOKEN> with your token string.
    Replace <CHANNEL> with the channel name.
    Replace <YOUR_TOKEN_NAME> with the label name used in the previous step.
Assign scopes to tokens to set permission levels for token holders. Scopes are provided as a space-separated, quoted list.Available scopes:
ScopePermission
allAllow all operations
reposAllow access to all package repositories
pypiAllow all operations on Standard Python repositories
pypi:uploadProvides upload permissions to Standard Python repositories
pypi:downloadProvides download permissions for private packages in Standard Python repositories
condaAllow all operations on conda repositories
conda:downloadProvides download permissions for private packages in conda repositories
apiAllow all API operations
api:writeProvides write permissions to actions performed via API
api:readProvides read permissions to actions performed via API
api:modify-groupProvides manage permissions to groups via the API
If your token expires, revoke the token and create a new one.

Revoking tokens

You can revoke tokens directly on Anaconda.org or from the command line interface (CLI).
  • CLI
  • Anaconda.org
  1. Open Anaconda Prompt (Terminal on macOS/Linux) and run the following command:
    anaconda auth --remove <YOUR_TOKEN_NAME>
    
    Replace <YOUR_TOKEN_NAME> with the name of the token you want to revoke.