The F5Bot API allows users on eligible paid tiers to programmatically manage their keyword alerts.
If you configure a Webhook URL in your API Dashboard, F5Bot will send an HTTP `POST` request to that URL for each alert that is triggered. The request body will be in JSON format.
The webhook payload format is identical to the items found in your JSON feed.
Your endpoint will receive a JSON object with the following structure:
{
"id": "F5BOT-alert-12345",
"url": "https://www.reddit.com/r/technology/comments/...",
"title": "keyword - Reddit Comments - The title of the post",
"content_html": "Here is the <b>excerpt</b> of the text containing the keyword.",
"date_published": "2026-01-12T19:20:30+01:00",
"group": "",
"username": "author_username",
"tags": [
"keyword",
"Reddit Comments"
]
}
All webhook requests are logged to track delivery status and troubleshoot any issues. You can view the results of your webhook calls, including their status, timestamps, and any error messages, in your Webhook History Dashboard.
The system automatically retries failed webhook deliveries with the following policy:
After 3 failed attempts, webhook delivery will be discontinued. Successful deliveries will not be retried.
API access requires a valid Bearer token. You can generate and manage your tokens from the API Dashboard. All API requests must include the token in an `Authorization` header.
Authorization: Bearer <your-token>
The base URL for all API endpoints is:
https://f5bot.com
The following endpoints are available for managing your alerts.
| Method & Endpoint | Description |
|---|---|
GET /api/get-alerts |
Retrieve a list of all alerts for your account. |
POST /api/create-alert |
Create a new keyword alert. |
POST /api/update-alert |
Update an existing keyword alert by its ID. |
POST /api/delete-alert |
Delete an existing keyword alert by its ID. |
Returns a list of all alerts associated with your account in either JSON or CSV format.
Query Parameters:
format (optional): json or csv. Defaults to json.group (optional): Filters alerts to only include those with a matching group=name flag.ids (optional): A comma-separated list of alert IDs (e.g., 123,456,789) to retrieve specific alerts.Successful Response (JSON):
{
"success": true,
"data": [
{
"id": 123,
"keyword": "typescript",
"flags": "whole no-reddit",
"enabled": 1,
"group": ""
},
{
"id": 124,
"keyword": "react",
"flags": "only-hackernews group=frontend",
"enabled": 1,
"group": "frontend"
}
],
"count": 2
}
Creates a new alert. The request body must be JSON.
JSON Parameters:
keyword (string, required): The keyword to monitor (3-50 characters).flags (string, optional): A space-separated list of flags.enabled (boolean, optional): Set to true or false. Defaults to true.Successful Response:
{
"success": true,
"data": {
"id": 125,
"keyword": "vue",
"flags": "whole no-reddit",
"enabled": true,
"created": true
},
"message": "Alert created successfully"
}
Updates an existing alert. The request body must be JSON.
JSON Parameters:
id (integer, required): The database ID of the alert to update.keyword (string, required): The new keyword (3-50 characters).flags (string, optional): The new set of flags.enabled (boolean, optional): Set to true or false.Successful Response:
{
"success": true,
"data": {
"id": 123,
"keyword": "react",
"flags": "whole only-hackernews",
"enabled": false,
"created": false
},
"message": "Alert updated successfully"
}
Deletes an alert permanently. The request body must be JSON.
JSON Parameters:
id (integer, required): The database ID of the alert to delete.Successful Response:
{
"success": true,
"data": {
"id": 123,
"keyword": "typescript"
},
"message": "Alert deleted successfully"
}
These examples use curl and assume your API token is stored in a shell variable named $TOKEN.
TOKEN="YOUR_API_TOKEN_HERE"
curl -H "Authorization: Bearer $TOKEN" \
https://f5bot.com/api/get-alerts
curl -H "Authorization: Bearer $TOKEN" \
"https://f5bot.com/api/get-alerts?format=csv&group=stocks"
curl -H "Authorization: Bearer $TOKEN" \
"https://f5bot.com/api/get-alerts?ids=123,456,789"
curl -X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"keyword": "vue",
"flags": "whole no-reddit"
}' \
https://f5bot.com/api/create-alert
curl -X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"id": 123,
"keyword": "react",
"flags": "whole only-hackernews",
"enabled": false
}' \
https://f5bot.com/api/update-alert
curl -X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"id": 123
}' \
https://f5bot.com/api/delete-alert
| Code | Meaning |
|---|---|
| 200 | OK - The request was successful. |
| 400 | Bad Request - A required parameter is missing or a validation rule was not met. |
| 401 | Unauthorized - The API token is missing, invalid, or revoked. |
| 404 | Not Found - The requested alert does not exist or does not belong to your account. |
| 405 | Method Not Allowed - You used GET when a POST was required. |
| 500 | Internal Server Error - Something went wrong on our end. |
Currently, there are no hard rate limits on the API. API access is still in testing, and we may implement rate limiting or metered billing in the future.