Look at the CMR environments table and choose which environment you will be working in.

CMR Environments Table

CMR Environment

Base API URL (through ECHO)

Associated URS Environment

Operational (OPS)

https://api.echo.nasa.gov

https://urs.eosdis.nasa.gov

User Acceptance Test (UAT)

https://api-test.echo.nasa.gov

https://beta.urs.eosdis.nasa.gov

Systems Integration Test (SIT)

https://testbed.echo.nasa.gov

https://alpha.urs.eosdis.nasa.gov

On a terminal window execute the curl command for the environment you have chosen.

Depending on the environment you have chosen, the Base API URL may be different from the example.  If so, just replace the purple text with the correct Base API URL that you need. If you are imbedding the token REST messages into a programming language, create an HTTP message and place the same components from the curl example into either the message header or body. 

curl -X POST --header "Content-Type: application/xml" -d "<token><username>sample_username</username><password>sample-password</password><client_id>client_name_of_your_choosing</client_id><user_ip_address>your_origin_ip_address</user_ip_address> <provider>Provider Id</provider></token>" https://api.echo.nasa.gov/echo-rest/tokens

The <provider> element in blue in the example above is only used if you are planning on working as or on behalf of a data provider (ingesting). Client developers (searching) can leave it out. If you have special characters in your password, you will probably need to escape them using a backslash.

 

Another way using curl if you don't want to escape any characters, you can use the "file input" option to create a file that looks like the following:

 

<token>
<username>sample_username</username>
  <password>sample-password</password>
  <client_id>client_name_of_your_choosing</client_id>
  <user_ip_address>your_origin_ip_address</user_ip_address>
  <provider>Provider Id</provider>
</token>

We used mytokengenerator.xml for the file name. Then, the full curl command looks a little bit different:

 

curl -X POST --header "Content-Type: application/xml" -d @mytokengenerator.xml https://api-test.echo.nasa.gov/echo-rest/tokens

Again, if using a programming language, just place the curl example parts into the correct http message header or body locations.

 

An HTTP success status code 200 is provided with the response. A sample response from the curl call is the following, where the value in the id tag is the token you will use as the value in the Echo-Token header:

 

<?xmlversion="1.0"encoding="UTF-8"?>
<token>
  <id>75E5CEBE-6BBB-2FB5-A613-0368A361D0B6</id>
  <username>sample_username</username>
  <client_id>client_name_of_your_choosing</client_id>
  <user_ip_address>your_origin_ip_address</user_ip_address>
  <provider>Provider Id</provider>
</token>