# Integration API keys

> The API key contained in an Application allows you to authenticate with the [Integration API][iapi] to send data to and retrieve it from a specific Application.

> For the complete documentation index, see [llms.txt](https://docs.talon.one/llms.txt).

:::tip Looking for a different API?
- To create an API key to use the [Management API](/docs/dev/management-api/overview.md),
  see [Manage Management API keys](/docs/product/account/dev-tools/manage-mapi-keys.md).
- To create an API key to use the [Third-party API](/third-party-api),
  see [Third-party API keys](/docs/product/applications/manage-third-party-api-keys.md).
:::

:::note
If the user who created an Integration API key is:
- [Disabled][user disabled]: The key can be used until it expires, and the user's email
  address is displayed for that time period.
- [Deleted][user deleted]: The key can be used until it expires, and the user's email
  address is no longer displayed.
:::

## Integration API key types

Talon.One allows you to create and manage the following types of Integration API keys:

  <colgroup>
    <col span="1" style={{width:20+"%"}}/>
    <col span="1" style={{width:80+"%"}}/>
  </colgroup>
  
    
      Key type
      Description
    
  
  
    
      Production
      For use in your integration layer for your production Applications. See the Authentication section of the Integration API docs.
    
    
      Test
      
        
          <FeatureAccessInfoBox>
            This key type is available only if campaign staging and revisions is enabled.
          </FeatureAccessInfoBox>
          <Admonition type="note">
            You can create only one key of this type.
          </Admonition>
        
        For use in your staging environment. The key triggers all <StateLabel type="staged" name="Staged" /> and <StateLabel type="running" name="Running" /> campaigns in the Application. If a <StateLabel type="revised" name="Revised" /> campaign exists, the key triggers it instead of the active campaign. See Revise campaigns.  All requests made using the key are dry requests, and making production requests with it is not possible. The key allows access to the following endpoints:
        
          Update customer session
          Update customer profile
          Track event
        
      
    
  

## API key states

API keys have the following states:

- <StateLabel type="valid" name="Valid" />: The key is valid and can be used.
- <StateLabel type="expsoon" name="Expires Soon" />: The key is valid and can be used but expires sometime in the next seven days.
- <StateLabel type="expired" name="Expired" />: They key has passed its expiration date and can no longer be used.

## Create a production API key

Create a production API key to use in your integration layer.
This is the type of key to use for [Integration API][iapi] requests
for the campaigns you manage in a production environment.

To create a production API key:

1. In your Application, click <Settings className="icon" /> **Settings** > **Integration API Keys**.
1. Click <Add className="icon" /> **Create API Key**.
1. In the **Create API Key** drawer, if you are asked for a key type, select **Production**.
1. In **Key name**, type a name to identify the key.
1. In **Key expiration date**, select a date.

   :::tip
   Avoid choosing expiration dates that fall at the end of the year or during other
   high-traffic periods.
   :::

1. In **Third-party integration**, select **No**.
1. Click **Create API Key**.
1. Click <Copy className="icon" /> to copy the key for use.

:::note
You cannot view or copy the API key after closing the drawer.
:::

## Create a testing API key

Create a testing API key to test your <StateLabel type="staged" name="Staged" />
and <StateLabel type="revised" name="Revised" /> campaigns in your testing environment.
You can create only one testing key in an Application.

<FeatureAccessInfoBox>
You can create and test using this key type only
if [campaign staging and revisions][csm] is enabled for your Application.
</FeatureAccessInfoBox>

To create a testing API key:

1. In your Application, click <Settings className="icon" /> **Settings** > **Integration API Keys**.
1. Click <Add className="icon" /> **Create API Key**.
1. In the **Create API Key** drawer, select **Testing** as the key type.
1. In **Key name**, type a name to identify the key.
1. In **Key expiration date**, select a date.

   :::tip
   Avoid choosing expiration dates that fall at the end of the year or during other
   high-traffic periods.
   :::

1. Click **Create API Key**.
1. Click <Copy className="icon" /> to copy the key for use.

:::note
You cannot view or copy the API key after closing the drawer.
:::

## Delete an Integration API key

When you delete an Integration API key, the software that uses that key immediately loses
access to the [Integration API][iapi].

:::important
You cannot undo the deletion of an Integration API key.
:::

To delete an Integration API key:

1. In your Application, click <Settings className="icon"/> **Settings** &gt; **Integration API Keys**.
1. In the **API Keys** section, to the right of the key you want to delete,
   click <TrashIcon className="icon"/>.
1. In the confirmation window that appears, type the name of the key and click **Delete API Key**.

## Related pages

- [Integration API][iapi]
- [Technology partners](/docs/dev/technology-partners/overview.md)
- [Management API Keys][mapi-keys]
- [Campaign staging and revisions][csm]
- [Test a campaign][testing-a-campaign]
- [Revise campaigns][revising]

[iapi]: /docs/dev/integration-api/overview.md
[user disabled]: /docs/product/account/account-settings/manage-users.md#disable-a-user
[user deleted]: /docs/product/account/account-settings/manage-users.md#delete-a-user
[mapi-keys]: /docs/product/account/dev-tools/manage-mapi-keys.md
[testing-a-campaign]: /docs/product/campaigns/create-and-manage-campaigns.md#test-a-campaign
[csm]: /docs/product/applications/manage-general-settings.md#campaign-staging-and-revisions
[revising]: /docs/product/campaigns/revise-campaigns.md
