# API Key Usage

> Monitor and analyze your API key usage to track integration activity, identify trends, and troubleshoot issues.

## Accessing API Key Usage

From the sidebar, expand **Integrations** and click **API Keys**. You'll see a list of all your API keys with their descriptions and last used timestamps. Each API key row includes action buttons for viewing usage statistics (chart icon), copying the key, and deleting the key.

<figure><img src="/files/JFnmWkEaCYfgU5ckTjjF" alt="" width="375"><figcaption></figcaption></figure>

To view detailed usage statistics for a specific API key, click the **chart icon** in the Actions column. This opens the API Key Usage dashboard for that particular key.

<figure><img src="/files/xzc08dFdaqoXkv6fIwL8" alt="" width="211"><figcaption></figcaption></figure>

## Usage Dashboard Overview

The API Key Usage dashboard provides comprehensive analytics for your API key activity. At the top of the page, you'll see the API key name and a "Back to API Keys" link to return to the main API Keys list.

<figure><img src="/files/4rrCui39P3o0z3zjFBlN" alt=""><figcaption></figcaption></figure>

### Summary Metrics

The dashboard displays four key metrics in card format:

<figure><img src="/files/MswXnArYxXLZBLPxbsFp" alt=""><figcaption></figcaption></figure>

<details>

<summary>Total Requests</summary>

Shows the total number of API calls made using this key. This includes all requests regardless of their outcome.

</details>

<details>

<summary>Completed</summary>

Displays the count of successfully processed requests (shown in green). These are requests that received a valid response from the API.

</details>

<details>

<summary>Failed</summary>

Indicates the number of requests that encountered errors (shown in red). This helps identify potential issues with your integration.

</details>

<details>

<summary>Rate Limited</summary>

Shows requests that were rejected due to exceeding the rate limit (shown in orange). If this number is high, consider optimizing your request frequency or contacting support for rate limit adjustments.

</details>

### Analytics Charts

The dashboard includes three visualization sections to help you understand your API usage patterns:

<figure><img src="/files/ePAElwtSUcuwTHf40BbI" alt=""><figcaption></figcaption></figure>

<details>

<summary>By HTTP Method</summary>

Presents a donut chart breaking down requests by HTTP method (GET, POST, etc.). This helps you understand the types of operations your integration performs most frequently.

</details>

<details>

<summary>By Response Status</summary>

Shows a donut chart categorizing requests by HTTP response codes. Common status codes include 200 (success), 429 (rate limited), and 503 (service unavailable). This visualization helps quickly identify if your integration is experiencing issues.

</details>

<details>

<summary>Top Endpoints</summary>

Lists the most frequently called API endpoints with their request counts. This helps identify which parts of the API your integration uses most heavily and can guide optimization efforts.

</details>

## Request Log

Below the analytics section, you'll find a detailed request log table that shows individual API requests. The table includes the following columns:

<figure><img src="/files/HOdbmQTExwaVpSAfXCEw" alt="" width="234"><figcaption></figcaption></figure>

<details>

<summary>Request ID</summary>

A unique identifier for each API request, useful for troubleshooting specific issues.

</details>

<details>

<summary>Timestamp</summary>

Shows when the request was made, displayed in your local timezone.

</details>

<details>

<summary>Method</summary>

Indicates the HTTP method used (GET, POST, etc.).

</details>

<details>

<summary>Endpoint</summary>

Shows the API endpoint that was called.

</details>

<details>

<summary>Status</summary>

Displays the request status (completed, failed, etc.) with color-coded badges.

</details>

<details>

<summary>Response</summary>

Shows the HTTP response code returned by the API.

</details>

### Filtering Requests

The request log supports multiple filtering options to help you find specific requests:

<figure><img src="/files/j1oTi7wTok8ehIEXFW4G" alt=""><figcaption></figcaption></figure>

<details>

<summary>Filter by resource ID</summary>

Allows you to search for requests related to a specific resource.

</details>

<details>

<summary>API key ID</summary>

Filter is pre-applied to show only requests for the current API key.

</details>

<details>

<summary>Date</summary>

Lets you narrow down requests to a specific time period.

</details>

<details>

<summary>Status</summary>

Shows only requests with a particular status (completed, failed, etc.).

</details>

<details>

<summary>HTTP method</summary>

Filter displays only requests using a specific HTTP method.

</details>

<details>

<summary>API endpoint</summary>

Shows requests to a particular endpoint.

</details>

<details>

<summary>Response status</summary>

Displays requests with specific HTTP response codes.

</details>

Click **Apply** to apply your selected filters, or **Clear filters** to reset all filters. You can also use **Edit columns** to customize which columns are displayed in the table.

## Managing API Keys

From the main API Keys page, you can perform the following actions:

<figure><img src="/files/IZ4wYZWlDkuQwYBCA8WY" alt="" width="169"><figcaption></figcaption></figure>

<details>

<summary>Generate API Key</summary>

Creates a new API key for your workspace. Click the blue "Generate API Key" button in the top right corner. Give your key a descriptive name to help identify its purpose (e.g., "PowerAutomate", "Zapier Integration").

</details>

<details>

<summary>Copy API Key</summary>

Copies the key value to your clipboard for use in your integrations.

</details>

<details>

<summary>Delete API Key</summary>

Permanently removes the API key. This action cannot be undone, and any integrations using this key will stop working immediately.

</details>

## Why Use Multiple API Keys

A single API key works across all agents and postings in your workspace, but creating multiple keys gives you better control over monitoring, security, and troubleshooting — especially useful for staffing agencies managing multiple clients or integrations.

<details>

<summary><strong>Environment Separation</strong></summary>

Create separate keys for production and staging/development environments. This isolates traffic and makes it easier to troubleshoot issues without affecting live integrations.

</details>

<details>

<summary><strong>Usage Tracking per Integration</strong></summary>

Each API key tracks its own usage metrics including requests, success/failure rates, and endpoint activity. Create separate keys for different integrations (e.g., "ATS Integration", "Webhook Service", "Candidate Ingestion") to monitor each one independently.

</details>

<details>

<summary><strong>Security &#x26; Access Control</strong></summary>

* **Revocation granularity:** If one key is compromised, revoke just that key without affecting other integrations
* **Key rotation:** Rotate keys for specific integrations without disrupting all services
* **Team access:** Different team members or external partners can use different keys

</details>

<details>

<summary><strong>Rate Limiting Isolation</strong></summary>

Using separate keys for different services prevents one high-traffic integration from consuming the rate limit for others.

</details>

<details>

<summary><strong>Audit &#x26; Debugging</strong></summary>

Since usage logs are tracked per key, having separate keys makes it easier to:

* Debug issues with specific integrations
* Audit which system made which API calls
* Track down errors to specific services

</details>

{% hint style="info" %}
**For Staffing Agencies:** Consider creating separate API keys per client or per integration type. This makes it easy to track usage, troubleshoot issues, and revoke access if a client relationship ends.
{% endhint %}

## Best Practices

When managing your API keys, consider the following recommendations:

* Use descriptive names for your API keys that indicate their purpose or the integration they're used for. This makes it easier to manage multiple keys and identify which key is used where.
* Regularly review your API key usage to identify unused keys that can be deleted, reducing security risk.
* Monitor the Failed and Rate Limited metrics to catch integration issues early. A sudden spike in failed requests may indicate a problem with your integration or changes to the API.
* If you're consistently hitting rate limits, review your integration logic to reduce unnecessary API calls or implement request batching where possible.

{% hint style="warning" %}
Keep your API keys secure and never share them in public repositories or client-side code. If you suspect a key has been compromised, delete it immediately and generate a new one.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.admin.heymilo.ai/public-api/api-key-usage.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
