--- layout: default navsection: userguide title: "Getting an API token" ... {% comment %} Copyright (C) The Arvados Authors. All rights reserved. SPDX-License-Identifier: CC-BY-SA-3.0 {% endcomment %} The Arvados API token is a secret key that enables the Arvados command line tools to authenticate themselves. Access the Arvados Workbench using this link: "{{site.arvados_workbench_host}}/":{{site.arvados_workbench_host}}/ (Replace the hostname portion with the hostname of your local Arvados instance if necessary.) Open a shell on the system where you want to use the Arvados client. This may be your local workstation, or an Arvados virtual machine accessed with "Webshell":{{site.baseurl}}/user/getting_started/vm-login-with-webshell.html or SSH (instructions for "Unix":{{site.baseurl}}/user/getting_started/ssh-access-unix.html#login or "Windows":{{site.baseurl}}/user/getting_started/ssh-access-windows.html#login). In the Arvados Workbench, click on the dropdown menu icon in the upper right corner of the top navigation menu to access the _Account Management_ menu. Then, in the pop-up menu, click on the menu item *Get API token*. This will open a dialog box that lists your current token and the instructions for setting up your environment. h2. Setting environment variables In the dialog box opened after clicking on the *Get API token* menu item, there is a sequence of commands you may copy and paste directly into the shell. It will look something as the following. bc. HISTIGNORE=$HISTIGNORE:'export ARVADOS_API_TOKEN=*' export ARVADOS_API_TOKEN=2jv9346o396exampledonotuseexampledonotuseexes7j1ld export ARVADOS_API_HOST={{ site.arvados_api_host }} unset ARVADOS_API_HOST_INSECURE * The @export@ command puts a local shell variable into the environment that will be inherited by child processes such as the @arv@ client. h2. settings.conf Arvados tools will also look for the authentication information in @~/.config/arvados/settings.conf@. If you have already put the variables into the environment following the instructions above, you can use these commands to create an Arvados configuration file:
$ cat >~/.config/arvados/settings.conf <<EOF
ARVADOS_API_HOST=$ARVADOS_API_HOST
ARVADOS_API_TOKEN=$ARVADOS_API_TOKEN
EOF
{% include 'notebox_begin' %} This will overwrite the file @~/.config/arvados/settings.conf@. Arvados tools written in Python (most notably the @arv keep@ commands, @arv copy@, and @arv-mount@) search for configuration files following the XDG Base Directory Specification. This is uncommon, but if you have customized the @XDG_CONFIG_HOME@ environment variable, you may need to add @$HOME/.config@ to the @XDG_CONFIG_DIRS@ envirnoment variable to have all the tools find the same configuration. {% include 'notebox_end' %} h2. .bashrc Alternately, you may add the definitions of @ARVADOS_API_HOST@ and @ARVADOS_API_TOKEN@ to the @~/.bashrc@ file on the system where you intend to use the Arvados client. If you have already put the variables into the environment following the instructions above, you can use the commands below to append to your @~/.bashrc@, which tells Bash to export them as environment variables in newly-started interactive shell sessions:
$ echo "export ARVADOS_API_HOST=$ARVADOS_API_HOST" >> ~/.bashrc
$ echo "export ARVADOS_API_TOKEN=$ARVADOS_API_TOKEN" >> ~/.bashrc