Authentication
JWT Bearer token
All API requests require a valid JWT token passed in the Authorization header. Get your token from your account Settings page.
1
Sign in to your List My Product account.
2
Go to
Settings and copy your API token.
3
Include the token in every request header.
Authorization: Bearer <your_token>
Base URL: https://firmhound.com
Endpoints
Available API endpoints
List your alert history. Returns an array of alert objects in reverse chronological order. Requires an active subscription to the product.
product_id
limit
[
{
"id": "uuid",
"product_name": "List My Product",
"title": "Blast completed",
"content": "Submission summary...",
"source_id": "blast_abc123",
"created_at": "2026-04-19T10:00:00Z"
}
]
Export your alert history as a CSV file. Pass the product ID as a query parameter to filter by product.
product_id
List all webhooks registered for your account.
Register a new webhook endpoint. Supported events: blast.started and blast.completed.
{
"url": "https://yourapp.com/webhooks/listmyproduct",
"events": ["blast.started", "blast.completed"]
}
Remove a registered webhook by its ID.
Public RSS 2.0 feed of recent blasts (no auth required). Returns the last 20 items.
Code samples
Fetching alert history
Three ways to call the /alerts endpoint.
curl -X GET "https://firmhound.com/alerts?limit=10" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json"
token = "YOUR_TOKEN"
headers = {"Authorization": f"Bearer {token}"}
resp = requests.get(
"https://firmhound.com/alerts",
headers=headers,
params={"limit": 10}
)
data = resp.json()
const resp = await fetch("https://firmhound.com/alerts?limit=10", {
headers: {
"Authorization": `Bearer ${TOKEN}`,
"Content-Type": "application/json"
}
});
const data = await resp.json();
Rate limits
Request quotas
Auth endpoints are rate limited to prevent abuse. Exceeding limits returns a 429 response.
5
Signups per hour
Per IP address. POST /auth/signup.
10
Logins per minute
Per IP address. POST /auth/login.
429 Too Many Requests: Wait before retrying. Auth rate limits reset on a rolling window.