List Polymarket comments
List the comment thread of a Polymarket event or series, newest or oldest first, with replies and commenter profiles. An event in a recurring series, or in any series when the event has no comments of its own, returns the series discussion, as the event page shows it; other events return their own thread. Optionally keep only comments from position holders.
/v1/polymarket/commentsx-api-keyHeaders
Get your API keyYour ScrapeAtlas customer key. Create one on /account/ and set SCRAPEATLAS_API_KEY.
Event slug, numeric event ID, or a polymarket.com/event/<slug> URL (a /market/<slug> URL resolves to its event). Use event or series.
min 1 chars · max 600 chars
presidential-election-winner-2028Series slug or numeric series ID.
newest (default) or oldest.
one of: newest, oldest
true keeps only comments from wallets holding a position.
one of: true, false
Top-level comments per page, 1–100; defaults to 20. Replies to those comments are returned as additional rows.
20Optional nextCursor from the previous response. Send the same other parameters with it; omit it for the first page.
Request correlation UUID.
Upstream requests, decoded response bytes and elapsed milliseconds.
Always included.
≥ 0
Always included.
≥ 0
Always included.
≥ 0
True when usable data is returned; inspect status and coverage for omissions.
success, partial, failed or challenged. HTTP 200 can be partial.
one of: success, partial
Public Polymarket page the data describes, or the public API URL when no page exists (an order book or price history requested by token ID).
absolute HTTPS URL
UTC retrieval time.
complete is false when a warning names an omission, such as market_limit, level_limit, point_limit, comment_row_limit or stats_unavailable.
Always included.
Always included.
Always included.
Always included.
one of: Event, Series
Always included.
Series slug or numeric series ID.
Always included.
Always included.
Optional.
Comments and replies as a flat list in source order: id, body (omitted when the comment only attaches media), parentEntityType, parentEntityID, parentCommentID (replies only), userAddress, replyAddress (replies only), createdAt, updatedAt, reactionCount and reportCount.
up to 2000 items
Always included.
Optional.
Always included.
Always included.
Optional.
Always included.
Optional.
Always included.
Optional.
Always included.
Optional.
Optional.
up to 10 items
Always included.
Always included.
Optional.
Always included.
Optional.
Optional.
Optional.
Optional.
Optional.
Optional.
Optional.
Optional.
Optional.
Cursor for the next page, or null when the source has no further page.
No fields match.
HTTP 200 returns the success variant. Check status: partial means usable data with warnings, and failed or challenged requests carry a failure object described in Errors & responses.
| HTTP | failure.code | Meaning |
|---|---|---|
| 200 | partial | Usable data with level_limit, point_limit, market_limit, comment_row_limit or *_unavailable warnings. |
| 400 | invalid_request | Missing, duplicate, conflicting, unsafe or unsupported parameters, a URL outside polymarket.com, or a cursor the source rejects. |
| 401 | unauthorized | Missing or invalid worker API key. |
| 404 | not_found | Unknown event, market, outcome, token, series, handle or wallet. |
| 429 | upstream_rate_limited | Polymarket throttled the request; no automatic retry. |
| 502 | upstream_challenged | Polymarket rejected the request or answered with a challenge page. |
| 502 | unsupported_page | Malformed, mismatched or non-JSON source data, or a profile page without its wallet address. |
| 502 | response_too_large payload_too_complex | Response exceeded byte or parsing limits. |
| 502 | unsafe_redirect request_limit upstream_error | Bounded source retrieval could not complete. |
| 503 | busy | All worker slots and queue places are occupied. |
| 504 | timeout | Total request deadline expired. |