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

# API

> Diagnose and resolve the most common issues developers hit when working with Pulsedive's API.

If you need to troubleshoot Pulsedive's API, explore these solutions to common issues.
If you don't find your issue here, check the [API Reference](/api) or reach out to [Support](/support).

## How do I check my usage and limits?

Check two places:

* **Your account page**: Visit [pulsedive.com/account](https://pulsedive.com/account) to see your plan's limits and the **Activity** section for recent usage.
* **Response headers**: Every API response includes headers showing your remaining requests for the current second, day, and month.

```text theme={null}
X-Requests-Remaining-Second: 1
X-Requests-Remaining-Day: 9
X-Requests-Remaining-Month: 249
```

Your rate limits depend on your plan, so these headers change based on what you are subscribed to.
A missing header means there is no limit for that time period, and headers don't always appear on `429` error responses, which is why your account page is the more reliable source when a failed request doesn't show them.

## Why am I getting a 429 error?

A `429` means you exceeded your plan's rate limit.
Free, Pro, and standard Commercial plans enforce these limits directly, so exceeding one blocks the request.
Higher Commercial tiers use soft limits instead, which don't block requests but may prompt Pulsedive to reach out if you consistently exceed them.

<Steps>
  <Step title="Check which limit you hit">
    Compare the request timing against the `X-Requests-Remaining-Second`, `-Day`, and `-Month` headers from your last successful request to identify whether you hit a per-second, per-day, or per-month cap.
  </Step>

  <Step title="Slow down or upgrade">
    Add delays between requests to stay under your per-second limit, or upgrade your [API plan](https://pulsedive.com/about/api) for higher limits.
  </Step>
</Steps>

## Why am I getting a 401 error?

A `401` means Pulsedive didn't recognize the key on your request, and it is almost always caused by issues with an API key rather than a problem with your account itself.
Check these three things, in order:

* **Missing key**: Requests without a key work, but with much stricter limits.
  Add `&key=<YOUR_API_KEY>` to confirm this isn't the cause.
* **Invalid key**: Double check the key against the one shown on your [account page](https://pulsedive.com/account).
  Keys aren't interchangeable between accounts.
* **Key not authorized for the request**: Some data (like TAXII collections) requires a specific plan.
  Confirm your plan supports the endpoint you are calling.

<Note>
  Your API key doesn't expire on its own.
  If a previously working key stops authenticating, [contact Support](mailto:support@pulsedive.com) rather than generating a new one, since your existing key stays tied to your integrations.
</Note>

## What do Pulsedive's API error codes mean?

Every Pulsedive API endpoint returns errors in the same shape:

```json title="Example error response" theme={null}
{
  "error": "Indicator not found."
}
```

| Code | What to do | Why it happens |
| - | - | - |
| `400` | Check the `error` message for specifics, and review the parameter against the [API Reference](/api/overview). | Your request was malformed, or a parameter's value isn't valid (for example, an invalid Explore query or filter). |
| `401` | See [Why am I getting a 401 error?](#why-am-i-getting-a-401-error) above. | Your API key is missing or invalid. |
| `404` | Confirm the ID or value you're querying is correct. | The resource you requested (indicator, threat, feed, etc.) doesn't exist. |
| `429` | Refer to the [Why am I getting a 429 error?](#why-am-i-getting-a-429-error) section. | You exceeded your plan's rate limit. |
| `500` | Retry the request, and contact Support if it persists. | An unexpected error occurred on Pulsedive's end. These are automatically reported to the Pulsedive team. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.