Module Polymarket

Polymarket OCaml client library.

This library provides typed clients for the Polymarket APIs:

Example Usage

  Eio_main.run @@ fun env ->
  Eio.Switch.run @@ fun sw ->
  let net = Eio.Stdenv.net env in
  let clock = Eio.Stdenv.clock env in
  let rate_limiter =
    Polymarket.Rate_limiter.create ~clock
      ~config:Polymarket.Rate_limit_presets.gamma ()
  in
  let client = Polymarket.Gamma.create ~sw ~net ~rate_limiter () in
  match Polymarket.Gamma.get_events client () with
  | Ok events -> List.iter (fun e -> print_endline e.title) events
  | Error err -> print_endline (Polymarket.Error.to_string err)

Rate Limiting

Create a rate limiter with Polymarket API presets:

  let clock = Eio.Stdenv.clock env in
  let rate_limiter =
    Polymarket.Rate_limiter.create ~clock
      ~config:Polymarket.Rate_limit_presets.gamma ()
  in
  let client = Polymarket.Gamma.create ~sw ~net ~rate_limiter () in
  (* Requests are now automatically rate limited *)

Validated Primitive Types

The library uses validated types for addresses, hashes, and numeric constraints. These are available at the top level for convenience:

Sub-libraries

For finer-grained control, you can depend on sub-libraries directly:

API Modules

module Gamma : sig ... end

Gamma API client for markets, events, series, and search.

module Data : sig ... end

Data API client for positions, trades, activity, and leaderboards.

module Clob : sig ... end

CLOB API client for order books, pricing, and trading.

module Rfq : sig ... end

RFQ API client for Request for Quote trading.

module Bridge : sig ... end

Bridge API client for cross-chain deposits to Polymarket.

module Wss : sig ... end

WebSocket client for real-time market and user data.

module Rtds : sig ... end

Real-Time Data Socket (RTDS) client for streaming data.

module Sports : sig ... end

Sports WebSocket client for live match results.

module Rate_limiter = Rate_limiter

Route-based rate limiting middleware for HTTP clients.

module Rate_limit_presets : sig ... end

Pre-configured rate limits for Polymarket APIs.

Primitive Types

Validated types for addresses, hashes, and numeric constraints.

module Primitives : sig ... end

Abstract primitive types with built-in validation.

Cryptographic Utilities

EIP-712 signing, HMAC-SHA256, and Ethereum address derivation.

module Crypto : sig ... end

Cryptographic utilities for Polymarket API authentication.

Error Types

Structured error types for API operations.

module Error : sig ... end