---
title: API Keys
description: Create and manage API keys for programmatic access. Configure scopes to control what each key can do.
section:
  title: Team & Settings
  order: 5
order: 4
lastUpdated: 2026-10-31
notice: "Only team owners and admins can do this."
next: ["/docs/api/authentication", "/docs/guides/monitor-a-cron-job"]
---

API keys allow you to access the Uptime API programmatically. Use them to integrate monitoring data into your own tools, automate monitor management, or build custom dashboards.

## Creating an API Key

To create a new API key:

1. Open <ui>API Keys</ui> in the sidebar
2. Click <ui>Create API Key</ui>
3. Enter a <ui>Key Name</ui> to identify this key (e.g., "CI/CD Pipeline" or "Dashboard Integration")
4. Under <ui>Permissions</ui>, select the scopes that define what the key can access
5. Optionally set an <ui>Expiration Date (Optional)</ui> for the key
6. Click <ui>Create API Key</ui>

After creation, you'll see the full API key exactly once. Copy it immediately and store it securely—you won't be able to view it again.

API keys follow the format `uptime_` followed by hexadecimal characters (e.g., `uptime_a1b2c3d4...`).

## Available Scopes

Scopes control what actions an API key can perform. Choose only the scopes your integration actually needs.

### Monitoring

| Scope                  | Description                                   |
| ---------------------- | --------------------------------------------- |
| `monitors:read`        | List and view HTTP monitors and their results |
| `monitors:write`       | Create and update HTTP monitors               |
| `monitors:delete`      | Delete HTTP monitors                          |
| `dns-monitors:read`    | List and view DNS monitors and their results  |
| `dns-monitors:write`   | Create and update DNS monitors                |
| `dns-monitors:delete`  | Delete DNS monitors                           |
| `tcp-monitors:read`    | List and view TCP monitors and their results  |
| `tcp-monitors:write`   | Create and update TCP monitors                |
| `tcp-monitors:delete`  | Delete TCP monitors                           |
| `flow-monitors:read`   | List and view flow monitors and their runs    |
| `flow-monitors:write`  | Create and update flow monitors               |
| `flow-monitors:delete` | Delete flow monitors                          |

### Scheduled Tasks

| Scope              | Description                                         |
| ------------------ | --------------------------------------------------- |
| `cron-jobs:read`   | List and view cron jobs and their execution history |
| `cron-jobs:write`  | Create and update cron jobs                         |
| `cron-jobs:delete` | Delete cron jobs                                    |
| `cron-jobs:ping`   | Record pings for the team's cron job monitors       |

### Alerts & Status

| Scope                | Description                                    |
| -------------------- | ---------------------------------------------- |
| `alerts:read`        | List and view alert configurations             |
| `alerts:write`       | Create, update, and delete alerts              |
| `status-pages:read`  | List and view status pages                     |
| `status-pages:write` | Create, update, and delete status pages        |
| `maintenance:read`   | List and view maintenance windows              |
| `maintenance:write`  | Create, update, and delete maintenance windows |

### Team Management

| Scope                | Description                       |
| -------------------- | --------------------------------- |
| `teams:read`         | View team details and member list |
| `teams:write`        | Update team settings              |
| `invites:read`       | List pending invitations          |
| `invites:write`      | Create and revoke invitations     |
| `team-domains:read`  | List verified domains             |
| `team-domains:write` | Add and remove verified domains   |

### API Key Management

| Scope            | Description                                     |
| ---------------- | ----------------------------------------------- |
| `api-keys:read`  | List API keys (excluding the secret key itself) |
| `api-keys:write` | Create and delete API keys                      |

## Viewing API Keys

The API Keys page shows all keys for your team:

- **Name** — The identifier you assigned when creating the key
- **Prefix** — The first characters of the key (e.g., `uptime_a1b2c3d4`) for identification
- **Scopes** — The permissions granted to the key
- **Last Used** — When the key was last used to make an API request
- **Expires** — The expiration date, if one was set

The full key is never displayed after creation. If you lose a key, delete it and create a new one.

## Deleting an API Key

To revoke an API key:

1. Open <ui>API Keys</ui> in the sidebar
2. Find the key you want to delete
3. Click <ui>Delete Key</ui> on its row

Deletion is immediate. Any applications using the key will stop working as soon as the key is deleted.

## Limits and Permissions

- Each team can have a maximum of **10 API keys**
- Only users with the **Admin** or **Owner** role can create, view, and delete API keys
- Members cannot access the API Keys settings page

If you need more than 10 keys, consider consolidating integrations or using keys with broader scopes for related services.
