Authentication overview
Pulsedive provides a threat intelligence platform designed for analysts, researchers, and security teams to investigate, enrich, and share threat data. Programmatic access to the Pulsedive platform is facilitated through its RESTful API, which requires authentication to ensure secure data exchange and resource control. The core authentication mechanism for the Pulsedive API is the use of API keys.
An API key acts as a unique identifier and secret token that authenticates the calling application or script with the Pulsedive service. This method allows developers to integrate Pulsedive's threat intelligence capabilities into various applications, security tools, and automated workflows, such as Security Information and Event Management (SIEM) systems, Security Orchestration, Automation, and Response (SOAR) platforms, or custom scripts for incident response and threat hunting.
The Pulsedive API is designed to be straightforward, with clear documentation that outlines endpoints, request/response formats, and authentication procedures, making it accessible for developers to implement integrations efficiently. All API communication is secured using HTTPS, providing encryption in transit to protect credentials and data payloads from interception.
Supported authentication methods
The primary and recommended method for authenticating with the Pulsedive API is through an API key. This approach is standard for many RESTful services due to its simplicity and ease of implementation. API keys are typically passed in the request headers or as a query parameter.
API Key Authentication
API key authentication involves including a unique, secret string with each API request. Pulsedive's system then validates this key against its records to confirm the identity and permissions of the requester. This method is suitable for server-to-server communication, scripts, and applications where the API key can be securely stored and managed.
The API key is associated with a specific user account on Pulsedive and inherits the permissions granted to that account. This ensures that any actions performed via the API are subject to the same access controls as those performed through the web interface. For instance, a user with read-only access to certain data types will only be able to perform read operations via their API key for those data types. For a broader understanding of API key security, refer to general best practices for API key security from Google Developers.
Authentication Methods Table
| Method | When to Use | Security Level |
|---|---|---|
API Key (X-API-KEY header) |
Programmatic access, server-to-server integrations, scripts, CI/CD pipelines. | Moderate to High (dependent on secure key management). Requires HTTPS for transit encryption. |
Getting your credentials
To access the Pulsedive API, you need to generate an API key from your Pulsedive account dashboard. The process is straightforward and ensures that each key is tied to a specific user, enabling proper auditing and access control.
- Log In to Pulsedive: Navigate to the Pulsedive website and log in with your existing user credentials. If you do not have an account, you will need to register for one. Pulsedive offers a Free Community Tier that includes API access, allowing developers to get started without an immediate financial commitment.
- Access API Settings: Once logged in, go to your user profile or account settings. Look for a section explicitly labeled 'API Keys', 'API Settings', or similar. The exact navigation may vary slightly but is typically found under your user menu or dashboard settings.
- Generate a New API Key: Within the API settings, there will be an option to generate a new API key. Clicking this button will typically create a unique alphanumeric string. It is crucial to copy this key immediately upon generation, as some platforms do not display the full key again for security reasons after the initial creation.
- Securely Store Your Key: After generating and copying your API key, store it in a secure location. Avoid hardcoding API keys directly into your application's source code. Instead, use environment variables, secret management services, or configuration files that are not committed to version control.
- Revoke Keys (Optional): If an API key is compromised, no longer needed, or needs to be rotated, you can revoke it from the same API settings section in your Pulsedive account. Revoking a key immediately invalidates it, preventing any further unauthorized access.
For detailed, step-by-step instructions and any specific nuances related to key generation or management, always refer to the official Pulsedive API documentation.
Authenticated request example
Once you have obtained your API key, you can use it to make authenticated requests to the Pulsedive API. The API key is typically included in the HTTP request headers using the X-API-KEY header field. Below is an example using curl to query an indicator.
This example demonstrates how to retrieve information about a specific indicator by making a GET request to the /indicator/search endpoint. Replace YOUR_API_KEY with your actual Pulsedive API key and example.com with the indicator you wish to query.
curl -X GET \
'https://pulsedive.com/api/v1/indicator/search?value=example.com' \
-H 'X-API-KEY: YOUR_API_KEY' \
-H 'Accept: application/json'
Explanation of the example:
curl -X GET: Specifies an HTTP GET request.'https://pulsedive.com/api/v1/indicator/search?value=example.com': The API endpoint URL, including thevaluequery parameter for the indicator you are searching for.-H 'X-API-KEY: YOUR_API_KEY': This is the crucial authentication header. It tells Pulsedive which API key is being used for the request.-H 'Accept: application/json': This header indicates that the client prefers a JSON response, which is the standard format for the Pulsedive API.
Upon successful authentication and a valid request, the API will return a JSON object containing details about the requested indicator, such as its type, risk, threat score, and any associated threats, properties, or attributes available in the Pulsedive database.
Security best practices
Securing your Pulsedive API keys and interactions is paramount to protect your threat intelligence operations and prevent unauthorized access to sensitive data. Adhering to these best practices will help maintain the integrity and confidentiality of your API integrations.
- Never Expose API Keys Publicly: API keys should always be treated as sensitive credentials, similar to passwords. Never embed them directly into client-side code (e.g., JavaScript in a web browser, mobile apps) or commit them to public version control repositories like GitHub. Exposure can lead to unauthorized usage, potentially incurring costs or compromising data.
- Use Environment Variables or Secret Management: Store API keys in environment variables, dedicated configuration files that are excluded from version control (e.g., via
.gitignore), or secure secret management services (e.g., AWS Secrets Manager, Google Secret Manager, HashiCorp Vault). This approach isolates the keys from your codebase and allows for easier rotation and management. - Restrict Key Permissions (Least Privilege): If Pulsedive offers granular permissions for API keys (check the Pulsedive API documentation for specifics), configure your keys to have only the minimum necessary permissions required for their intended function. For example, if an application only needs to read indicator data, do not grant it write or delete permissions. This limits the damage if a key is compromised.
- Rotate API Keys Regularly: Periodically rotate your API keys. This practice minimizes the window of exposure if a key is compromised without your immediate knowledge. A common recommendation is to rotate keys every 90 days or as per your organization's security policy.
- Monitor API Usage: Regularly review API access logs and usage patterns in your Pulsedive account, if available. Unusual activity, such as a sudden spike in requests or requests from unexpected geographical locations, could indicate a compromised key.
- Use HTTPS Always: All interactions with the Pulsedive API should occur over HTTPS (TLS). This encrypts the communication channel between your application and the Pulsedive servers, protecting your API key and data payloads from eavesdropping or man-in-the-middle attacks. Pulsedive enforces HTTPS for all API endpoints.
- Implement IP Whitelisting (if available): If your infrastructure has static IP addresses, check if Pulsedive allows restricting API key usage to specific IP ranges. This adds an extra layer of security, ensuring that even if a key is stolen, it can only be used from authorized networks.
- Error Handling and Rate Limiting: Implement robust error handling in your applications to gracefully manage API responses, including authentication failures. Be mindful of Pulsedive's API rate limits to avoid getting temporarily blocked.
By diligently applying these security best practices, developers and organizations can significantly enhance the security posture of their Pulsedive API integrations and protect their valuable threat intelligence assets.