Getting started overview
To begin using the Pulsedive API, developers typically follow a three-step process: account creation, API key generation, and executing an initial API request. Pulsedive offers a Free Community Tier, which provides access to fundamental threat intelligence capabilities, making it suitable for evaluating the platform and integrating basic enrichment workflows. The API is designed as a RESTful web service, meaning interactions occur over standard HTTP methods (GET, POST) and data is typically exchanged in JSON format.
This guide focuses on the practical steps to achieve a working API call quickly. It covers registration, locating your API key, and constructing a basic query to retrieve information about a threat indicator. Subsequent sections will also address common next steps and troubleshooting tips to ensure a smooth onboarding experience.
Here is a quick reference table summarizing the initial setup process:
| Step | What to Do | Where |
|---|---|---|
| 1. Create Account | Register for a Pulsedive account. | Pulsedive Pricing page (choose Free Community or paid tier) |
| 2. Get API Key | Generate or locate your unique API key. | Pulsedive Dashboard > Account Settings > API Key |
| 3. Make First Request | Send an authenticated API call to query an indicator. | Using a tool like curl or a programming language HTTP client |
Create an account and get keys
Access to the Pulsedive API requires an active account and an associated API key. Follow these steps to set up your account and retrieve your credentials:
-
Register for a Pulsedive account: Navigate to the Pulsedive pricing page. You can choose to sign up for the Free Community Tier, which provides a foundational level of access suitable for testing and personal use, or explore paid tiers for more extensive features and higher rate limits. Complete the registration form with your email and desired password. You may need to verify your email address to activate your account.
-
Log in to your dashboard: Once registered and verified, log in to the Pulsedive platform using your new credentials.
-
Locate your API key: Within the Pulsedive dashboard, navigate to your Account Settings. The exact path might be labeled 'API Key' or 'Developer Settings'. On this page, you will find your unique API key. This key acts as your credential for authenticating API requests. It is crucial to treat your API key like a password: keep it confidential and avoid embedding it directly into client-side code or public repositories. For security best practices regarding API keys, consult resources like Cloudflare's API key security guidelines.
The API key is a long alphanumeric string. Copy this key, as you will need to include it in the headers or parameters of every API request you make.
Your first request
With your API key in hand, you can now make your first authenticated request to the Pulsedive API. We will use the /api/info.php endpoint to query an indicator. This example uses curl, a command-line tool for making HTTP requests, which is pre-installed on most Unix-like operating systems and available for Windows.
Example: Querying an IP address indicator
This request aims to retrieve detailed information about a specific IP address, 8.8.8.8 (Google Public DNS), which is a common, benign IP used for testing. Replace YOUR_API_KEY with the actual API key you obtained from your Pulsedive dashboard.
curl -X GET \
'https://pulsedive.com/api/info.php?indicator=8.8.8.8&pretty=1&key=YOUR_API_KEY' \
-H 'Accept: application/json'
Let's break down this curl command:
curl -X GET: Specifies that this is an HTTP GET request.'https://pulsedive.com/api/info.php?indicator=8.8.8.8&pretty=1&key=YOUR_API_KEY': This is the API endpoint URL.pulsedive.com/api/info.php: The base URL for the information endpoint.indicator=8.8.8.8: The query parameter specifying the threat indicator (an IP address in this case).pretty=1: An optional parameter that instructs the API to return human-readable (pretty-printed) JSON output, making it easier to read in the console.key=YOUR_API_KEY: The query parameter where you pass your API key for authentication.-H 'Accept: application/json': Sets theAcceptheader, indicating that the client expects a JSON response. While often optional, explicitly setting this header is a good practice for API interactions.
Expected Response (truncated example):
Upon successful execution, the API will return a JSON object containing details about the indicator. The structure and content will depend on the indicator type and the data available in Pulsedive's threat intelligence database. For 8.8.8.8, you might see information related to its type, properties, and any associated threats or observations.
{
"status": "success",
"type": "IP Address",
"indicator": "8.8.8.8",
"risk": "none",
"risk_recommended": "none",
"risk_score": 0,
"properties": {
"asn": "AS15169 Google LLC",
"country": "US",
"organization": "Google LLC"
// ... other properties
},
"feed": [
// ... associated feeds
]
// ... other data fields
}
A "status": "success" field in the response indicates that the request was processed correctly. If you receive an error, check the status field and any accompanying error messages for details.
Common next steps
After successfully making your first API call, you can explore more advanced functionalities and integrate Pulsedive into your security workflows:
-
Explore other API endpoints: Pulsedive offers various endpoints beyond
info.php. Review the Pulsedive API reference to discover endpoints for searching indicators, submitting new indicators, managing feeds, and querying specific threat types. For example, you might use the/api/search.phpendpoint to find indicators matching certain criteria or the/api/submit.phpendpoint to add new observations. -
Implement programmatically: While
curlis useful for testing, integrate the API into your applications using HTTP client libraries in languages like Python (requestslibrary), Node.js (axiosor built-infetch), or Go (net/http). This allows for automated queries, parsing responses, and integrating threat intelligence into security tools, SIEMs, or incident response platforms. -
Handle rate limits: Be aware of the Pulsedive documentation on rate limits, which vary by account tier. Implement retry logic with exponential backoff in your code to gracefully handle rate limit errors (e.g., HTTP 429 Too Many Requests) and prevent overwhelming the API.
-
Secure your API key: Beyond not hardcoding it, consider using environment variables, configuration management tools, or a secrets management service to store and access your API key securely in production environments. This practice minimizes the risk of exposure.
-
Monitor and log: Implement logging for your API interactions to track requests, responses, and any errors. This aids in debugging, auditing, and ensuring proper functioning of your integrations.
Troubleshooting the first call
If your initial API request does not return a successful response, consider the following common issues and troubleshooting steps:
-
Incorrect API Key: Double-check that you have copied your API key correctly and replaced
YOUR_API_KEYin thecurlcommand with the exact key from your Pulsedive dashboard. An incorrect key will typically result in an authentication error (e.g.,"status": "error", "message": "Invalid API Key"). -
Typo in Endpoint or Parameters: Carefully review the URL and parameters for any typos. Ensure the endpoint path (
/api/info.php) and parameter names (indicator,key,pretty) are spelled correctly and case-sensitive where applicable. -
Network Connectivity: Verify that your machine has an active internet connection and can reach
pulsedive.com. You can test this by pinging the domain (e.g.,ping pulsedive.com). -
Rate Limiting: If you are making multiple requests in quick succession, particularly on the Free Community Tier, you might encounter rate limiting. The API will respond with an error message indicating that you have exceeded your request limit. Wait a few moments and try again, or consult the Pulsedive documentation for rate limits specific to your account tier.
-
HTTP Method: Ensure you are using the correct HTTP method (
GETfor retrieving information,POSTfor submitting). The example uses-X GET, which is appropriate for theinfo.phpendpoint. -
Firewall/Proxy Issues: If you are behind a corporate firewall or proxy, it might be blocking outbound connections to
pulsedive.com. Consult your network administrator or configure yourcurlcommand to use the proxy (e.g.,curl --proxy http://your.proxy.com:8080 ...). -
Check Pulsedive Status Page: Occasionally, service disruptions can occur. Check the Pulsedive homepage or their official communication channels for any announcements regarding outages or maintenance.