For the complete documentation index, see llms.txt. This page is also available as Markdown.

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