Skip to main content

Overview

The Alerts API enables you to create, manage, and control monitoring alerts. Alerts track specific keywords, topics, or brands across various sources including social media, news, blogs, and forums.

Methods

Get Alerts

Fetch all alerts for an account.
client.get_alerts(account_id: str) -> AlertsResponse
account_id
string
required
The account ID
Returns: AlertsResponse containing list of alerts Example:
from mention import MentionClient

client = MentionClient(access_token="your-token")
alerts_response = client.get_alerts("acc_123456")

for alert in alerts_response.alerts:
    print(f"{alert.name}: {alert.mentions_count} mentions")
Response:
{
  "alerts": [
    {
      "id": "alert_123",
      "name": "Brand Monitoring",
      "query": {
        "type": "basic",
        "included_keywords": ["acme", "acme corp"],
        "excluded_keywords": ["competitors"],
        "required_keywords": []
      },
      "languages": ["en", "es"],
      "countries": ["US", "GB"],
      "sources": ["twitter", "news", "blog"],
      "noise_detection": true,
      "sentiment_analysis": true,
      "mentions_count": 1523,
      "unread_mentions_count": 45,
      "shares_count": 3,
      "followers_count": 12,
      "reach": 50000,
      "last_mention_at": "2024-01-20T15:30:00Z",
      "created_at": "2024-01-01T10:00:00Z",
      "updated_at": "2024-01-20T15:30:00Z"
    }
  ]
}

Get Alert

Fetch a single alert by ID.
client.get_alert(account_id: str, alert_id: str) -> Alert
account_id
string
required
The account ID
alert_id
string
required
The alert ID
Returns: Alert object Example:
alert = client.get_alert("acc_123456", "alert_123")
print(f"Alert: {alert.name}")
print(f"Keywords: {alert.query.included_keywords}")
print(f"Unread: {alert.unread_mentions_count}")

Create Alert

Create a new alert with custom query and settings.
from mention import CreateAlertRequest, AlertQuery, QueryType

client.create_alert(
    account_id: str,
    request: CreateAlertRequest
) -> Alert
account_id
string
required
The account ID
request
CreateAlertRequest
required
Alert creation request containing name, query, and settings
Request Fields:
request.name
string
required
Alert name (cannot be empty)
request.query
AlertQuery
required
Query configuration with keywords and filters
request.languages
list[string]
default:"[\"en\"]"
List of language codes to monitor
request.countries
list[string]
default:"[]"
List of country codes to filter by
request.sources
list[string]
default:"[\"web\"]"
Sources to monitor (web, twitter, facebook, news, blog, etc.)
request.noise_detection
boolean
default:"true"
Enable noise/spam detection
request.sentiment_analysis
boolean
default:"true"
Enable sentiment analysis
Returns: Created Alert object Example:
from mention import MentionClient, CreateAlertRequest, AlertQuery, QueryType

client = MentionClient(access_token="your-token")

# Create query configuration
query = AlertQuery(
    type=QueryType.BASIC,
    included_keywords=["python SDK", "mention API"],
    excluded_keywords=["spam", "irrelevant"],
    required_keywords=["API"]
)

# Create alert request
request = CreateAlertRequest(
    name="Python SDK Mentions",
    query=query,
    languages=["en"],
    sources=["twitter", "reddit", "news"],
    noise_detection=True,
    sentiment_analysis=True
)

alert = client.create_alert("acc_123456", request)
print(f"Created alert: {alert.id}")

Update Alert

Update an existing alert’s configuration.
from mention import UpdateAlertRequest

client.update_alert(
    account_id: str,
    alert_id: str,
    request: UpdateAlertRequest
) -> Alert
account_id
string
required
The account ID
alert_id
string
required
The alert ID
request
UpdateAlertRequest
required
Alert update request (all fields optional)
Returns: Updated Alert object Example:
from mention import UpdateAlertRequest, AlertQuery

# Update query with new keywords
query = AlertQuery(
    included_keywords=["python", "SDK", "API client"],
    excluded_keywords=["spam"]
)

request = UpdateAlertRequest(
    name="Updated Alert Name",
    query=query,
    sources=["twitter", "reddit", "news", "blog"]
)

alert = client.update_alert("acc_123456", "alert_123", request)
print(f"Updated: {alert.name}")

Delete Alert

Delete an alert permanently.
client.delete_alert(account_id: str, alert_id: str) -> bool
account_id
string
required
The account ID
alert_id
string
required
The alert ID
Returns: True if deletion was successful Example:
success = client.delete_alert("acc_123456", "alert_123")
if success:
    print("Alert deleted")

Pause Alert

Pause an alert to temporarily stop monitoring.
client.pause_alert(account_id: str, alert_id: str) -> bool
account_id
string
required
The account ID
alert_id
string
required
The alert ID
Returns: True if pause was successful Example:
client.pause_alert("acc_123456", "alert_123")
print("Alert paused")

Unpause Alert

Resume monitoring for a paused alert.
client.unpause_alert(account_id: str, alert_id: str) -> bool
account_id
string
required
The account ID
alert_id
string
required
The alert ID
Returns: True if unpause was successful Example:
client.unpause_alert("acc_123456", "alert_123")
print("Alert resumed")

Models

Alert

Represents a monitoring alert.
FieldTypeDescription
idstringAlert ID
namestringAlert name
queryAlertQueryQuery configuration
languageslist[string]Language codes to monitor
countrieslist[string]Country codes to filter
sourceslist[string]Sources being monitored
noise_detectionbooleanNoise detection enabled
sentiment_analysisbooleanSentiment analysis enabled
mentions_countintegerTotal mentions count
unread_mentions_countintegerUnread mentions count
shares_countintegerNumber of shares
followers_countintegerNumber of followers
reachintegerTotal reach
last_mention_atdatetimeLast mention timestamp
created_atdatetimeCreation timestamp
updated_atdatetimeLast update timestamp

AlertQuery

Query configuration for an alert.
FieldTypeDescription
typeQueryTypeQuery type (basic, advanced, boolean)
included_keywordslist[string]Keywords to include
excluded_keywordslist[string]Keywords to exclude
required_keywordslist[string]Required keywords
should_belong_to_ownerbooleanFilter by ownership

QueryType

Query type enumeration:
  • BASIC: Simple keyword matching
  • ADVANCED: Advanced query syntax
  • BOOLEAN: Boolean operators (AND, OR, NOT)

Build docs developers (and LLMs) love