Skip to content

bullpen polymarket limit-buy

Last updated: May 29, 2026

Place a limit buy order on a prediction market outcome

Usage

bullpen polymarket limit-buy [OPTIONS] --price <PRICE> --shares <SHARES> <MARKET_SLUG> <OUTCOME>

Live Help

Place a limit buy order on a prediction market outcome

Usage: bullpen polymarket limit-buy [OPTIONS] --price <PRICE> --shares <SHARES> <MARKET_SLUG> <OUTCOME>

Arguments:
  <MARKET_SLUG>
          Market slug

  <OUTCOME>
          Outcome name

Options:
      --output <OUTPUT>
          Output format for command results

          [possible values: table, json]

      --price <PRICE>
          Limit price (e.g., "0.45" for 45 cents — valid range depends on market tick size)

      --env <ENV>
          Target environment to connect to (overrides config.toml)

          [env: BULLPEN_ENV=]
          [possible values: staging, production]

      --shares <SHARES>
          Number of shares (e.g., "100")

      --config <CONFIG>
          Path to a custom config.toml file (overrides $BULLPEN_CONFIG and the default location).

          Explicit --config and BULLPEN_CONFIG paths fail closed: if the file is missing, the CLI exits validation instead of silently loading defaults. Credentials still resolve via BULLPEN_HOME, so set BULLPEN_HOME too when isolating a session.

      --expiration <EXPIRATION>
          Order time-in-force: gtc (Good-Til-Cancelled, default), gtd (Good-Til-Date), fok (Fill-Or-Kill), or fak (Fill-And-Kill)

          Possible values:
          - gtc: Good-Til-Cancelled: rests on the book until explicitly cancelled
          - fok: Fill-Or-Kill: must fill entirely immediately, otherwise cancelled
          - gtd: Good-Til-Date: rests on the book until the specified date
          - fak: Fill-And-Kill: fills as much as possible immediately, rest cancelled

          [default: gtc]

      --post-only
          Post-only mode: reject the order if it would fill immediately

      --yes
          Skip confirmation

      --preview
          Show order preview without executing

      --read-only
          Enable read-only mode: blocks all mutating commands

      --auto-wrap
          Automatically wrap USDC.e → pUSD when pUSD balance is insufficient before placing the limit buy order. This is a money-moving consent flag: typing it authorises a USDC.e → pUSD wrap for exactly the shortfall amount. For manual control use `bullpen polymarket wrap <amount>` instead

      --non-interactive
          Suppress interactive prompts; does NOT imply --yes for money-moving commands

          [env: BULLPEN_NON_INTERACTIVE=]

      --wallet <WALLET>
          Pin the signer to a specific owner EOA (0x…). Bypasses the active-wallet cache and resolves the Polymarket wallet context directly for this address. Use in bot automation to avoid wallet-select races

  -h, --help
          Print help (see a summary with '-h')

EXAMPLES:
  bullpen polymarket limit-buy --help
      Show options for this command without signing, submitting, or changing state.

Example Commands

bullpen polymarket limit-buy [OPTIONS] --price <PRICE> --shares <SHARES> <MARKET_SLUG> <OUTCOME>
bullpen polymarket limit-buy --help
bullpen polymarket limit-buy --output json

JSON Output

Contract: JSON Output Contract.

This command supports --output json, but this generated reference page intentionally does not include a synthetic success schema or example.

Use the live command in your target environment to inspect command-specific success fields. Error output follows the shared JSON output contract linked above.

Error Envelope

When a Polymarket CLOB or gasless-relayer rejection coincides with a degraded Polymarket status page, the error envelope may include a polymarket_status object:

{
  "polymarket_status": {
    "page_status": "HASISSUES",
    "status_url": "https://status.polymarket.com",
    "affected_components": [
      {"name": "CLOB API", "status": "PARTIALOUTAGE"}
    ],
    "advisory": "Polymarket is experiencing issues; this rejection is most likely a Polymarket-side outage."
  }
}

The field is omitted on local validation/auth/balance errors and when the status-page fetch times out or reports healthy relevant components.

Schema version: 1 when a command emits schema_version; otherwise treat the current command shape as contract version 1.

Stability

Patch releases may add nullable or optional fields. Minor releases may add required fields or increment schema_version. Major releases may remove or rename fields.