# Authenticate a user-level API key

The <u>**Redox Platform API**</u> is an API tool that allows you to manage your Redox organization. [Learn more about the Redox Platform API](/api-reference/platform-api).

To send a Platform API request, you must create and authenticate a <u>**user-level API key**</u>, which authorizes an individual requesting user. Some API functionalities might be restricted, depending on the individual user’s permissions.

## Prerequisites

- A user must be assigned to an <u>**engineer role**</u> to create or authenticate API keys. [Learn about user roles](/basics/managing-access-for-your-redox-organization/what-are-user-roles).
- If you choose option 2 for creating a user-level API key, you must have an existing <u>**public key**</u>. This can be either a <u>**JWKS URL**</u> or or <u>**JWKS entry**</u>. 

## Create a user-level API key

1. Log in to the Redox dashboard.
2. Click **your username** at the bottom of the navigation menu.
3. From the user menu, select the **User settings** option**.** 


![The User settings option appears in the user menu at the bottom left of the Redox dashboard.](https://images.ctfassets.net/cl3wt5ehhnlv/1IOjeuQZF1PH264ah0SrEE/890901385413c6717026429db0ac2274/user-menu-user-settings.png)

*User settings option*


4. By default, the <u>User info</u> tab opens. Click the **User API keys** tab. 
5. The User API keys page opens with any existing user-level API keys. Click the **New** button. 
6. The <u>Details</u> page opens. In the <u>Name</u> field, enter the **API key name**.
7. Choose one of the following options to continue: 

<details>
<summary>Option 1: Generate keys in the Redox dashboard</summary>

Follow these steps to generate a new key pair (i.e., private and public keys) in the Redox dashboard. Generating gives you a private key that you store and a JWKS entry for the public key that Redox stores.

1. From the <u>Method</u> drop-down, select the **Generate or provide keys** option, then click the **Generate a key pair** tab. 
2. Click the **Generate keys** button. 
3. The <u>Private key</u> and <u>Public key</u> fields populate. Copy and store these values by clicking the **format** (i.e., JSON, PEM) you want, then selecting the **Copy** or **Download** options. 
_This is the only time you_’_ll see the private key in the Redox dashboard, so make sure to copy or download, then store it securely._ 
4. If using Postman, click the **Download Postman environment** button to use our environment for sending Platform API requests.
5. Click the **Create** button. 
_The keys aren_’_t stored until you save them._ 
6. After the keys are saved, the newly generated public key automatically populates the JWKS entry under the  <u>Provide your own</u> tab. On the <u>User API keys</u> tab, the <u>Public key</u> column populates with `JWKS with 1 key(s)`.

</details>

<details>
<summary>Option 2: Provide your public key (JWKS entry)</summary>

If you already have a key pair, you can provide the public key to Redox and store your private key. The <u>JSON Web Key Set</u> (<u>JWKS</u>) entry is the actual JSON entry for the public key. 

1. From the <u>Method</u> drop-down, select the **Generate or provide keys** option.
2. Click the **Provide your own** tab. 
3. Paste the **JWKS entry** in the field provided. 
4. Click the **Save** button. _The public key isn't stored until you save._ 


</details>

<details>
<summary>Option 3: Provide an existing public key </summary>

If you already have a key pair, you can provide the public key to Redox and store your private key. The <u>JSON Web Key Set</u> (<u>JWKS</u>) URL publicly exposes the public key you use for generating the signed assertion. The URL can be internal to your servers or somewhere like a GitHub Gist. If you use this URL, Redox fetches the `kid` property in the JWT to find the right public key.  

1. From the <u>Method</u> drop-down, click the **Provide a JWKS URL** option. 
2. Paste the **JWKS URL** in the field provided. 
3. Click the **Save** button. _The public key isn't stored until you save._

</details>

## Request and store an access token

Next, you must request an access token with an auth request. [Follow the OAuth API key instructions ](https://docs.redoxengine.com/permalink/0CKpMIghEgSam9nJuzyXe#send-an-auth-request)for requesting and storing an access token. 

## Initiate Platform API requests

After getting an access token, you’re ready to initiate API requests to any of the Platform API endpoints: `https://api.redoxengine.com/platform/{endpoint}`. 

Each Platform endpoint has different requirements, path parameters, or request parameters. [Explore each endpoint schema](https://docs.redoxengine.com/permalink/platform-api-landing-page) for their respective requirements.

> **Multi-region users**
>
> If you’re operating in Canada, you have to add the `ca` region to the Redox endpoint URL: `https://api.ca.redoxengine.com`.
