Find Polymarket markets and resolved outcomes

Browse Polymarket market metadata with resumable pagination.

GET /markets

With resolved=true, this endpoint reads the local archive and returns only confirmed winning outcomes. With resolved=false or no resolved filter, it queries Gamma live. These modes have different cursors; keep the same filter while paging. The confirmed-resolution archive grows as the background crawler discovers markets.

Authentication

Send your key in the X-API-Key header. Keep the key out of URLs and shared logs.

Parameters

NameLocationTypeRequiredDetails
limitqueryintegerNo Default: 100. minimum: 1. maximum: 500.
cursorquerystring or nullNo
resolvedqueryboolean or nullNo

Example request

curl --fail-with-body -X GET \
  "https://polymarket.omray.dev/markets" \
  -H "X-API-Key: $PM_API_KEY"

Responses

StatusMeaning
200Successful Response
422Validation Error

Authenticated requests can return 401 for an invalid key or 429 when a plan limit is reached. Upstream failures may return a server error; do not treat an error as an empty dataset.

OpenAPI operation schema
{
  "tags": [
    "Markets"
  ],
  "summary": "Find Polymarket markets and resolutions",
  "description": "Read live Gamma market metadata with keyset pagination. With resolved=true, read confirmed winners from the local archive; each response identifies its pagination source.",
  "operationId": "markets",
  "security": [
    {
      "APIKeyHeader": []
    }
  ],
  "parameters": [
    {
      "name": "limit",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "maximum": 500,
        "minimum": 1,
        "default": 100,
        "title": "Limit"
      }
    },
    {
      "name": "cursor",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "string",
            "maxLength": 2048
          },
          {
            "type": "null"
          }
        ],
        "title": "Cursor"
      }
    },
    {
      "name": "resolved",
      "in": "query",
      "required": false,
      "schema": {
        "anyOf": [
          {
            "type": "boolean"
          },
          {
            "type": "null"
          }
        ],
        "title": "Resolved"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Successful Response",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/MarketPage"
          }
        }
      }
    },
    "422": {
      "description": "Validation Error",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/HTTPValidationError"
          }
        }
      }
    }
  }
}