F5Bot API Documentation

The F5Bot API allows users on eligible paid tiers to programmatically manage their keyword alerts.


Webhooks

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.

Webhook Payload 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"
  ]
}

Logging and Retry

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.


Authentication

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

Endpoints

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.

GET /api/get-alerts

Returns a list of all alerts associated with your account in either JSON or CSV format.

Query Parameters:

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
}

POST /api/create-alert

Creates a new alert. The request body must be JSON.

JSON Parameters:

Successful Response:

{
  "success": true,
  "data": {
    "id": 125,
    "keyword": "vue",
    "flags": "whole no-reddit",
    "enabled": true,
    "created": true
  },
  "message": "Alert created successfully"
}

POST /api/update-alert

Updates an existing alert. The request body must be JSON.

JSON Parameters:

Successful Response:

{
  "success": true,
  "data": {
    "id": 123,
    "keyword": "react",
    "flags": "whole only-hackernews",
    "enabled": false,
    "created": false
  },
  "message": "Alert updated successfully"
}

POST /api/delete-alert

Deletes an alert permanently. The request body must be JSON.

JSON Parameters:

Successful Response:

{
  "success": true,
  "data": {
    "id": 123,
    "keyword": "typescript"
  },
  "message": "Alert deleted successfully"
}

Usage Examples

These examples use curl and assume your API token is stored in a shell variable named $TOKEN.

TOKEN="YOUR_API_TOKEN_HERE"

Get All Alerts (JSON)

curl -H "Authorization: Bearer $TOKEN" \
     https://f5bot.com/api/get-alerts

Get Alerts in a Specific Group (CSV)

curl -H "Authorization: Bearer $TOKEN" \
     "https://f5bot.com/api/get-alerts?format=csv&group=stocks"

Get Specific Alerts by ID

curl -H "Authorization: Bearer $TOKEN" \
     "https://f5bot.com/api/get-alerts?ids=123,456,789"

Create a New Alert

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

Update an Existing 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

Delete an Alert

curl -X POST \
     -H "Authorization: Bearer $TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
       "id": 123
     }' \
     https://f5bot.com/api/delete-alert

Reference

HTTP Status Codes

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.

Rate Limiting

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.