openapi: 3.1.0 info: title: Polymarket APIs (CLOB and Gamma) CLOB Market Data Gamma Events API version: '1.0' description: "Polymarket exposes several HTTP APIs documented at\nhttps://docs.polymarket.com/:\n\n * CLOB API (`https://clob.polymarket.com`) for order book,\n trading, and pricing operations.\n * Gamma API (`https://gamma-api.polymarket.com`) for read-only\n market, event, and metadata access.\n\nThis specification captures a representative subset of endpoints\nfrom both surfaces. CLOB trading endpoints require the\nPOLY_API_KEY / POLY_ADDRESS / POLY_SIGNATURE / POLY_PASSPHRASE /\nPOLY_TIMESTAMP header set; Gamma endpoints are fully public.\n" contact: name: Polymarket Documentation url: https://docs.polymarket.com/ servers: - url: https://clob.polymarket.com description: Polymarket CLOB API - url: https://clob-staging.polymarket.com description: Polymarket CLOB staging - url: https://gamma-api.polymarket.com description: Polymarket Gamma API tags: - name: Gamma Events description: Read-only event metadata. paths: /events: get: tags: - Gamma Events operationId: listEvents summary: List events description: Returns an array of event objects. Supports filtering and pagination. servers: - url: https://gamma-api.polymarket.com parameters: - in: query name: limit schema: type: integer minimum: 0 - in: query name: offset schema: type: integer minimum: 0 - in: query name: order schema: type: string description: Comma-separated field list to sort by. - in: query name: ascending schema: type: boolean - in: query name: id style: form explode: true schema: type: array items: type: integer format: int64 - in: query name: tag_id schema: type: integer - in: query name: slug style: form explode: true schema: type: array items: type: string - in: query name: active schema: type: boolean - in: query name: archived schema: type: boolean - in: query name: featured schema: type: boolean - in: query name: closed schema: type: boolean - in: query name: liquidity_min schema: type: number - in: query name: liquidity_max schema: type: number - in: query name: volume_min schema: type: number - in: query name: volume_max schema: type: number - in: query name: start_date_min schema: type: string format: date-time - in: query name: start_date_max schema: type: string format: date-time - in: query name: end_date_min schema: type: string format: date-time - in: query name: end_date_max schema: type: string format: date-time responses: '200': description: Array of events content: application/json: schema: type: array items: $ref: '#/components/schemas/Event' components: schemas: Market: type: object additionalProperties: true properties: id: type: integer format: int64 question: type: string slug: type: string conditionId: type: string active: type: boolean closed: type: boolean archived: type: boolean featured: type: boolean liquidity: type: number volume: type: number startDate: type: string format: date-time endDate: type: string format: date-time outcomes: type: array items: type: string outcomePrices: type: array items: type: string clobTokenIds: type: array items: type: string tags: type: array items: $ref: '#/components/schemas/Tag' Tag: type: object properties: id: type: integer label: type: string slug: type: string Event: type: object additionalProperties: true properties: id: type: integer format: int64 ticker: type: string slug: type: string title: type: string description: type: string startDate: type: string format: date-time endDate: type: string format: date-time active: type: boolean closed: type: boolean archived: type: boolean featured: type: boolean liquidity: type: number volume: type: number markets: type: array items: $ref: '#/components/schemas/Market' tags: type: array items: $ref: '#/components/schemas/Tag' securitySchemes: polyApiSignature: type: apiKey in: header name: POLY_API_KEY description: 'Polymarket CLOB authenticated trading endpoints require five headers: POLY_API_KEY, POLY_ADDRESS, POLY_SIGNATURE, POLY_PASSPHRASE, POLY_TIMESTAMP. Only POLY_API_KEY is modelled here because OpenAPI security schemes describe a single header each; in practice, all five must be sent on each request. '