5 title: "Getting an API token"
9 h1. Reference: Getting an API token
11 The Arvados API token is a secret key that enables the @arv@ command line client to access Arvados with the proper permissions.
13 Access the Arvados workbench using this link: "https://workbench.{{ site.arvados_api_host }}/":https://workbench.{{ site.arvados_api_host }}/
15 (Replace @{{ site.arvados_api_host }}@ with the hostname of your local Arvados instance if necessary.)
17 First, open a shell on the system on which you intend to use the Arvados client (this may be your local workstation, or an Arvados VM, refer to "Accessing Arvados over ssh":{{site.basedoc}}/user/getting_started/ssh-access.html ) .
19 Click on the user icon <span class="glyphicon glyphicon-user"></span> in the upper right corner to access the user settings menu, and click on the menu item _Manage API token_ to go to the "api client authorizations" page.
23 For your convenience, the "api client authorizations" page on Workbench provides a "Help" tab that provides a command you may copy and paste directly into the shell. It will look something like this:
25 bc. ### Pasting the following lines at a shell prompt will allow Arvados SDKs
26 ### to authenticate to your account, youraddress@example.com
27 read ARVADOS_API_TOKEN <<EOF
28 2jv9346o396exampledonotuseexampledonotuseexes7j1ld
30 export ARVADOS_API_TOKEN ARVADOS_API_HOST={{ site.arvados_api_host }}
32 * The @read@ command takes the contents of stdin and puts it into the shell variable named on the command line.
33 * The @<<EOF@ notation means read each line on stdin and pipe it to the command, terminating on reading the line @EOF@.
34 * The @export@ command puts a local shell variable into the environment that will be inherited by child processes (e.g. the @arv@ client).
36 h2. Setting the environment manually
38 Alternately, look for the column *api_token* contains the actual token string that you will use. Copy the value of *api_token* for the first row onto the clipboard.
41 <pre><code>$ <span class="userinput">export ARVADOS_API_HOST={{ site.arvados_api_host }}</span>
42 $ <span class="userinput">export ARVADOS_API_TOKEN=2jv9346o3966345u7ueuim7a1zaaoueo3w90tzq3gx0es7j1ld</span>
46 * @ARVADOS_API_HOST@ tells @arv@ which host to connect to
47 * @ARVADOS_API_TOKEN@ is the secret key used by the Arvados API server to authenticate access.
49 If you are connecting to a development instance with a unverified/self-signed SSL certificate, set this variable to skip SSL validation:
52 <pre><code>$ <span class="userinput">export ARVADOS_API_HOST_INSECURE=1
58 Arvados tools will also look for the authentication information in @~/.config/arvados/settings.conf@. If you have already put the variables into the environment with instructions above, you can use these commands to create an Arvados configuration file:
61 <pre><code>$ <span class="userinput">echo "ARVADOS_API_HOST=$ARVADOS_API_HOST" > ~/.config/arvados/settings.conf</span>
62 $ <span class="userinput">echo "ARVADOS_API_TOKEN=$ARVADOS_API_TOKEN" >> ~/.config/arvados/settings.conf</span>
68 Alternately, you may add the declarations of @ARVADOS_API_HOST@ and @ARVADOS_API_TOKEN@ to the @~/.bashrc@ file on the system on which you intend to use the Arvados client. If you have already put the variables into the environment with instructions above, you can use these commands to append the environment variables to your @~/.bashrc@:
71 <pre><code>$ <span class="userinput">echo "export ARVADOS_API_HOST=$ARVADOS_API_HOST" >> ~/.bashrc</span>
72 $ <span class="userinput">echo "export ARVADOS_API_TOKEN=$ARVADOS_API_TOKEN" >> ~/.bashrc</span>