> ## Documentation Index
> Fetch the complete documentation index at: https://docs.goodgrants.com/llms.txt
> Use this file to discover all available pages before exploring further.

# API keys management

> Generate, edit, and revoke Good Grants API keys.

## API key scopes

API scopes allow you to restrict access for third parties using an API key. Use a scope to protect your and your applicants' data by limiting what third parties can access.

You can apply one of the following scopes to any API key:

* **Read only** - Use for `GET` operations, restricted to viewing data associated with the endpoint.
* **Read / Write** - Use for `GET`, `POST`, `PUT`, `PATCH`, and `DELETE` operations, covering create, update, and delete actions on data associated with the endpoint (set by default).

## Manage API keys

### Generate a new API key

<Steps>
  <Step title="Log in to the Good Grants dashboard" />

  <Step title="Generate a new API key">
    Navigate to *Settings > Integrations > API Keys*, then click on **Generate API Key**:

    <img src="https://mintcdn.com/good-grants/mGznArZNJlyVS5oH/images/authentication/generate-api-keys.png?fit=max&auto=format&n=mGznArZNJlyVS5oH&q=85&s=29e6dc001022ab623da5666cffc9e051" alt="Generate API key in dashboard" width="1516" height="1028" data-path="/images/authentication/generate-api-keys.png" data-path="images/authentication/generate-api-keys.png" />
  </Step>

  <Step title="Give your API key a name or purpose">
    Use a clear name or purpose so you can identify which integration a key belongs to later, especially when managing several keys.

    <img src="https://mintcdn.com/good-grants/mGznArZNJlyVS5oH/images/authentication/api-key-name-purpose.png?fit=max&auto=format&n=mGznArZNJlyVS5oH&q=85&s=9c5ded25251afb2bed0ace7690eaacf4" alt="Add API key name and purpose" width="1516" height="1028" data-path="/images/authentication/api-key-name-purpose.png" data-path="images/authentication/api-key-name-purpose.png" />
  </Step>

  <Step title="Define the scope of the API key">
    Select **Read only** for `GET` operations only, or **Read / Write** for full access (`GET`, `POST`, `PUT`, `PATCH`, `DELETE`).
  </Step>

  <Step title="Specify notification email addresses if needed. Separate each address with a comma (,) or semicolon (;)" />

  <Step title="Save your changes" />
</Steps>

### Update an existing API key

To update an existing API key, go to *Settings > Integrations > API Keys*, then click on the name of API keyname, or open the overflow action menu and click **Edit**.

<img src="https://mintcdn.com/good-grants/mGznArZNJlyVS5oH/images/authentication/update-api-keys.png?fit=max&auto=format&n=mGznArZNJlyVS5oH&q=85&s=dd09326af07bd4a62818e149148ac4f3" alt="Update API key" width="1516" height="1028" data-path="/images/authentication/update-api-keys.png" data-path="images/authentication/update-api-keys.png" />

### Revoke an existing API key

<Danger>
  **Revoking an API key is permanent. Any integration using the key immediately loses access, and you cannot undo this action.**
</Danger>

To revoke an existing API key, go to *Settings > Integrations > API Keys*, open the overflow action menu for the key, click **Revoke**, then confirm by clicking **OK**.

<img src="https://mintcdn.com/good-grants/mGznArZNJlyVS5oH/images/authentication/revoke-api-keys.png?fit=max&auto=format&n=mGznArZNJlyVS5oH&q=85&s=08087dfd907f2458a2e414c8575cc35e" alt="Update API key" width="1516" height="1028" data-path="/images/authentication/revoke-api-keys.png" data-path="images/authentication/revoke-api-keys.png" />
