Integrations
Get Subscribers
Retrieve a list of all subscribers for your project using the API.
Get Subscribers
Retrieves a list of all subscribers for your project. This endpoint requires a Private Key.
Authentication
This endpoint uses both the Public Key and Private Key for authentication.
Endpoint: GET /api/v1/external/projects/subscribers
Query Parameters:
page: Page number (default: 1)limit: Number of items per page (default: 10)
Headers:
x-penna-public-key: <YOUR_PUBLIC_KEY>x-penna-private-key: <YOUR_PRIVATE_KEY>
Response
{
"success": true,
"message": "Fetched subscribers successfully",
"data": {
"data": [
{
"serial": 123,
"id": "bdc80124-5787-4002-ba52-78ceddfeaadb",
"projectId": "bae91c59-0a8a-49f8-b917-f38c3772b88e",
"name": "Subscriber Name",
"email": "user@mail.com",
"status": "subscribed",
"createdAt": "2025-12-26T20:39:16.233Z",
"updatedAt": "2025-12-26T20:39:16.233Z"
}
],
"meta": {
"page": 1,
"limit": 10,
"total": 1,
"totalPages": 1,
"hasNextPage": false,
"hasPrevPage": false
}
}
}Code Examples
cURL
curl -X GET "https://api.penna.dev/api/v1/external/projects/subscribers?page=1&limit=10" \
-H "x-penna-public-key: penn_your_public_key" \
-H "x-penna-private-key: pk_your_private_key"Node.js (Axios)
const axios = require("axios");
async function getSubscribers() {
try {
const response = await axios.get(
"https://api.penna.dev/api/v1/external/projects/subscribers",
{
headers: {
"x-penna-public-key": "penn_your_public_key",
"x-penna-private-key": "pk_your_private_key",
},
}
);
console.log(response.data);
} catch (error) {
console.error(error);
}
}
getSubscribers();Python (Requests)
import requests
url = "https://api.penna.dev/api/v1/external/projects/subscribers"
headers = {
"x-penna-public-key": "penn_your_public_key",
"x-penna-private-key": "pk_your_private_key"
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
print(response.json())
else:
print(f"Failed: {response.text}")