Read the alerts belonging to the authenticated user.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Commercial UsersThe List Active Alerts API cannot be used with commercial partner keys. It requires a personal Pro API key or a user's OAuth access token.
GET /partnerapi/alerts returns all non-expired alerts for the user identified by the API credential.
Authentication
Use either a personal Pro API key or an OAuth access token from Login with Seats.aero. Both require an active Pro subscription and use the Partner-Authorization header:
curl --request GET \
--url https://seats.aero/partnerapi/alerts \
--header 'Partner-Authorization: pro_YOUR_API_KEY'For OAuth, use the existing openid scope and include Bearer in the same header:
curl --request GET \
--url https://seats.aero/partnerapi/alerts \
--header 'Partner-Authorization: Bearer seats:ota:YOUR_ACCESS_TOKEN'Commercial partner keys do not identify a user and receive HTTP 403. A browser login alone does not authenticate this endpoint. The API credential determines the account even when a different browser session is present. Legacy award alerts without a user ID are included when their delivery email matches the authenticated account; alerts explicitly owned by another account are excluded.
Each request uses one call from the user's shared daily API quota, including requests made through OAuth apps. Standard Partner API rate-limit headers apply.
Response
The response is an object containing a lowercase data array. Alert fields use native Go capitalization, such as ID, CreatedAt, and OriginAirport, matching the Partner API availability and trip objects. It returns all matching alerts without pagination, ordered by CreatedAt descending, then ID and Type ascending. An account with no active alerts receives {"data":[]}.
Type | Alert |
|---|---|
award | Award availability, one item per route and mileage program |
united_upgrade | United upgrade availability |
cathay | Cathay calendar availability |
seat | Seat map availability |
fare | Fare class availability |
Active means the stored alert has not expired. Paused award alerts are included with Paused: true; they remain configured but do not currently send notifications. Expiration is maintained by the existing alert workers, so this read does not remove past-date alerts awaiting worker processing. Continuous award alerts remain visible until expired.
Each item includes its ID, type, creation time, airports, notification channel, date bounds, AnyDate, and Paused. Type-specific filters appear when set; unset optional fields are omitted. DateFrom and DateTo are inclusive departure dates in YYYY-MM-DD format. Both are empty strings when AnyDate is true. For a single date they are equal.
Award items sharing a GroupID were created together. Cabins uses economy, premium, business, or first; Delta Comfort+ seat alerts use comfort_plus. MinCabinPct is the required share of journey distance in the selected cabin; 100 allows no mixed cabin segments. MaxFees is in USD cents. Time filters use local hours and minutes with the keys startHour, startMinute, endHour, and endMinute.
Delivery email addresses, phone numbers, account records, and internal match history are excluded.
Errors
Errors use plain-text bodies, not JSON objects. Inspect the HTTP status and body together.
| Status | Body | Meaning |
|---|---|---|
| 401 | missing_partner_key | No Partner API credential was supplied. |
| 401 | bad_partner_key | The API key is invalid or does not allow this route. |
| 401 | bad_partner_token | The OAuth token is invalid, expired, or revoked, or its app is disabled. |
| 401 | invalid_scope | The OAuth token does not have the supported openid scope. |
| 401 | user_subscription_expired | The user no longer has an active Pro subscription. |
| 403 | user_api_credentials_required | An authenticated partner key does not identify a user. |
| 429 | user_rate_limit_exceeded | The user's shared daily API quota has been exceeded. |
| 500 | error_loading_alerts | An alert query failed; no partial list is returned. |
The 403 and 500 bodies end with a newline.
