/subscriptions endpoint.
Overview
When you create a subscription with webhook channels configured, Nevua Markets will send HTTP POST requests to your configured webhook URLs when the subscription conditions are met. There are two types of notifications:- Price Notifications - Sent when price-based alert conditions are met (e.g., crossing thresholds)
- Event Status Notifications - Sent when event or market status changes occur (e.g., new events created, markets closed)
Price Notification Schema
This schema is used for all price-based alert notifications.Properties
| Field | Type | Description |
|---|---|---|
type | "price_notification" | The notification type |
userId | string | The ID of the user who owns the subscription |
createdAt | string (ISO 8601) | When the notification was created |
subscriptionId | string | The ID of the subscription that triggered this notification |
watchlistId | string | The ID of the watchlist being monitored |
watchlistName | string | The name of the watchlist |
eventId | string | The Polymarket event ID |
eventTitle | string | The title of the event |
marketId | string | The Polymarket market ID |
marketQuestion | string | The market question/title |
polymarketSlug | string | The Polymarket URL slug for this event |
clobTokenId | string | The CLOB token identifier |
subscriptionScope | "Watchlist" | "Event" | "Market" | The scope of the subscription |
subscriptionTypeConfig | object | Configuration details for the subscription type |
triggerType | "One Time" | "Recurring" | Whether this is a one-time or recurring trigger |
detectedValue | number | The price/percentage value that triggered the alert |
detectedAt | string (ISO 8601) | When the condition was detected |
detectedAtMs | number | Detection timestamp in milliseconds |
sentFromPolymarketAtMs | number | When the data was received from Polymarket (milliseconds) |
channels | array | Array of notification channels used for delivery |
detectionDetails | object | [Optional] Additional detection metadata |
polymarketSourceEvent | object | [Optional] Raw source event data from Polymarket |
- [30/09/2025]:
subscriptionTypeConfigwill soon be migrated to arulesobject, which will also contain trigger context.
Example Price Notification
Event Status Notification Schema
This schema is used for event and market status change notifications. There are three types of event notifications:- Open Markets, with
eventStatusScope:MarketandtriggerType:Open - Closed Markets, with
eventStatusScope:MarketandtriggerType:Closed - Closed Events, with
eventStatusScope:EventandtriggerType:Closed
Properties
| Field | Type | Description |
|---|---|---|
type | "event_status_notification" | The notification type |
userId | string | The ID of the user who owns the subscription |
eventStatusScope | "Market" | "Event" | Whether this is a market-level or event-level status change |
triggerType | "Open" | "Closed" | Whether this is for opening or closing |
createdAt | string (ISO 8601) | When the notification was created |
subscriptionId | string | The ID of the subscription that triggered this notification |
watchlistId | string | The ID of the watchlist being monitored |
watchlistName | string | The name of the watchlist |
eventId | string | The Polymarket event ID |
eventTitle | string | The title of the event |
marketId | string | [Optional] The market ID (present for market-level changes) |
marketQuestion | string | [Optional] The market question (present for market-level changes) |
outcomes | string | [Optional] Available outcome options for the market |
outcomePrices | string | [Optional] Current prices for market outcomes |
polymarketSlug | string | The Polymarket URL slug for this event |
detectedAt | string (ISO 8601) | When the status change was detected |
detectedAtMs | number | Detection timestamp in milliseconds |
channels | array | Array of notification channels used for delivery |
Example Event Status Notifications
New Market CreatedWebhook Delivery
HTTP Request Format
All webhook notifications are delivered as HTTP POST requests with the following characteristics:- Content-Type:
application/json - User-Agent:
NevuaMarkets-Webhook/1.0 - Body: JSON payload matching one of the schemas above
Response Requirements
Your webhook endpoint should:- Respond with a 2xx HTTP status code to indicate successful receipt
- Respond within 5 seconds to avoid timeout
- Handle duplicate notifications gracefully (notifications may be retried)
Retry Policy
Failed webhook deliveries will be retried 2 times:- Retry delay: 1 second
- Maximum retries: 2 retries, 3 attempts in total including the first.
Security Considerations
- Use HTTPS endpoints for webhook URLs
- Implement signature verification if needed (contact support for details)
- Validate the notification structure before processing
- Consider implementing idempotency based on
subscriptionId+detectedAtMs
Troubleshooting
Common Issues
- Missing notifications: Check that your webhook URL is accessible and responding with 2xx status codes
- Duplicate notifications: Implement idempotency handling based on notification IDs
- Timeout errors: Ensure your webhook endpoint responds within 30 seconds