Payload Format
This page describes the webhook payload required to trigger a Prediction Market bot (e.g. Polymarket).
Your bot listens for incoming HTTP requests. When a valid payload is received, it executes a trade based on the provided parameters.
🚀 Payload Structure
type PredictionSignalPayload = {
id?: string, // A custom identifier for the signal (optional, useful for tracking & deduplication)
key?: string, // Authorization key (required if webhook protection is enabled on the bot)
slug: string, // Polymarket market slug (e.g., 'elon-musk-of-tweets-april-2026-840-879')
outcome: string, // Market outcome to trade (e.g., 'Yes', 'No') — must match exactly
side: "BUY" | "SELL", // Trade action: 'BUY' to open/increase, 'SELL' to close/reduce
size?: number, // Trade size in USDC, overrides bot default amount (optional)
forceSize? boolean, // It can bypass the amount of those bots that have strict amount settings
dilution?: boolean, // If true, allows multiple BUY orders (stacking); if false, prevents consecutive entries
debug?: any, // Extra debugging or metadata info (optional, not used in execution)
}🧩 Field Explanation
id (optional)
A unique identifier for the signal.
Useful for tracking, logging, or deduplication
If not provided, one will be generated internally
key (optional)
Webhook protection key.
Required only if your bot has webhook protection enabled
Must match the key configured in your bot
slug (required)
The market identifier from Polymarket.
This is the URL slug of the market
Example:
📌 Used to determine which market to trade
outcome (required)
The outcome you want to trade.
Must match one of the market’s available outcomes
Common values:
"Yes""No"
📌 Case-sensitive depending on the market
side (required)
Defines the action to take:
"BUY"→ Open / increase position"SELL"→ Close / reduce position
size (optional)
Overrides the default trade size configured in the bot.
Value is typically in USDC
If omitted → bot uses its predefined size
dilution (optional)
Controls position stacking behavior.
true→ Allows multiple consecutive BUY orders (stacking)false→ Prevents multiple BUYs without a SELL in between
📌 Think of it as:
“Can this bot enter again if it already has a position?”
debug (optional)
Free-form field for debugging or metadata.
Not used in execution logic
Useful for:
Logging
Strategy tracing
External system context
📥 Example Request
cURL
JSON Example
Last updated